[gtranslator] Another fix for bgo#680399 - gtranslator 2.91.5 segfaults trying to use any plugin (gnome 3.5.x stac



commit 398ebe3e8b5271261423d60849452423bf0dfb51
Author: SÃbastien Granjoux <seb sfo free fr>
Date:   Tue Nov 20 21:57:53 2012 +0100

    Another fix for bgo#680399 - gtranslator 2.91.5 segfaults trying to use any plugin (gnome 3.5.x stack)
    
    Keep saving the layout on each change but connect the signal after loading the
    layout and disconnect it after saving it for the last time.

 src/gtr-tab.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/src/gtr-tab.c b/src/gtr-tab.c
index 4c7760a..2ebf60b 100644
--- a/src/gtr-tab.c
+++ b/src/gtr-tab.c
@@ -671,6 +671,13 @@ save_layout (GtrTab *tab)
 }
 
 static void
+on_layout_changed (GdlDockMaster *master,
+                   GtrTab        *tab)
+{
+  save_layout (tab);
+}
+
+static void
 extension_added (PeasExtensionSet *extensions,
                  PeasPluginInfo   *info,
                  PeasExtension    *exten,
@@ -882,6 +889,9 @@ gtr_tab_dispose (GObject * object)
 
   if (!priv->dispose_has_run)
     {
+      g_signal_handlers_disconnect_by_func (gdl_dock_layout_get_master (priv->layout_manager),
+                                            G_CALLBACK (on_layout_changed),
+                                            object);
       save_layout (GTR_TAB (object));
       priv->dispose_has_run = TRUE;
     }
@@ -962,6 +972,11 @@ gtr_tab_realize (GtkWidget *widget)
       g_free (filename);
 
       tab->priv->tab_realized = TRUE;
+
+      g_signal_connect (gdl_dock_layout_get_master (tab->priv->layout_manager),
+                        "layout-changed",
+                        G_CALLBACK (on_layout_changed),
+                        tab);
     }
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]