diff --git a/data/layout.xml b/data/layout.xml index 85f7f64..117f471 100644 --- a/data/layout.xml +++ b/data/layout.xml @@ -3,30 +3,20 @@ - - - - - - + + + + + + + - - - - - - - - - - - - - - - - + + + + + diff --git a/src/gtr-tab.c b/src/gtr-tab.c index 75fbd35..2ebf60b 100644 --- a/src/gtr-tab.c +++ b/src/gtr-tab.c @@ -727,19 +727,14 @@ gtr_tab_init (GtrTab * tab) gtk_widget_show (priv->dock); gtk_box_pack_end (GTK_BOX (hbox), priv->dock, TRUE, TRUE, 0); - dockbar = gdl_dock_bar_new (GDL_DOCK (priv->dock)); + dockbar = gdl_dock_bar_new (G_OBJECT (priv->dock)); gtk_widget_show (dockbar); gtk_box_pack_start (GTK_BOX (hbox), dockbar, FALSE, FALSE, 0); - priv->layout_manager = gdl_dock_layout_new (GDL_DOCK (priv->dock)); - g_signal_connect (priv->layout_manager->master, - "layout-changed", - G_CALLBACK (on_layout_changed), - tab); - + priv->layout_manager = gdl_dock_layout_new (G_OBJECT (priv->dock)); g_settings_bind (priv->ui_settings, GTR_SETTINGS_PANEL_SWITCHER_STYLE, - priv->layout_manager->master, + gdl_dock_layout_get_master (priv->layout_manager), "switcher-style", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET); @@ -894,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; } @@ -974,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); } }