[Xfce4-commits] <midori:master> Remove the according action when destroying panels
Christian Dywan
noreply at xfce.org
Thu Jul 21 18:20:02 CEST 2011
Updating branch refs/heads/master
to bfc6a034abf1bb43d6ff187396509bb121a2b86c (commit)
from cf4499f54bd8c0df4963bd53bced1421f92162d8 (commit)
commit bfc6a034abf1bb43d6ff187396509bb121a2b86c
Author: Christian Dywan <christian at twotoasts.de>
Date: Thu Jul 21 18:18:58 2011 +0200
Remove the according action when destroying panels
Fixes: https://bugs.launchpad.net/midori/+bug/699982
midori/midori-panel.c | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/midori/midori-panel.c b/midori/midori-panel.c
index 1e73c07..a7abc81 100644
--- a/midori/midori-panel.c
+++ b/midori/midori-panel.c
@@ -588,12 +588,29 @@ static void
midori_panel_viewable_destroy_cb (GtkWidget* viewable,
MidoriPanel* panel)
{
- gint i = gtk_notebook_page_num (GTK_NOTEBOOK (panel->notebook),
+ gint n_pages;
+ gchar* action_name;
+ GtkAction* action;
+ gint i;
+
+ i = gtk_notebook_page_num (GTK_NOTEBOOK (panel->notebook),
g_object_get_data (G_OBJECT (viewable), "parent"));
if (i > -1)
gtk_notebook_remove_page (GTK_NOTEBOOK (panel->notebook), i);
g_signal_handlers_disconnect_by_func (
viewable, midori_panel_viewable_destroy_cb, panel);
+
+ n_pages = midori_panel_get_n_pages (panel);
+ if (n_pages > 0)
+ midori_panel_set_current_page (panel, (n_pages-1 > i) ? i : n_pages - 1);
+
+ action_name = g_strconcat ("PanelPage",
+ midori_viewable_get_stock_id (MIDORI_VIEWABLE (viewable)), NULL);
+ action = gtk_action_group_get_action (panel->action_group, action_name);
+ g_free (action_name);
+
+ gtk_action_group_remove_action (panel->action_group, action);
+ g_object_unref (G_OBJECT (action));
}
static GtkToolItem*
More information about the Xfce4-commits
mailing list