aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-page-menu-action.c
diff options
context:
space:
mode:
authorXan Lopez <xan@igalia.com>2012-01-17 19:51:07 +0800
committerXan Lopez <xan@igalia.com>2012-01-17 19:51:07 +0800
commitaf6852c68bfad98d9175eb10ac3efbcc9112aac8 (patch)
tree07850d95b590b02511bc7571196d0b7999333019 /src/ephy-page-menu-action.c
parent6cb9603301f180fb276331d2ec176ad241e04d77 (diff)
downloadgsoc2013-epiphany-af6852c68bfad98d9175eb10ac3efbcc9112aac8.tar.gz
gsoc2013-epiphany-af6852c68bfad98d9175eb10ac3efbcc9112aac8.tar.zst
gsoc2013-epiphany-af6852c68bfad98d9175eb10ac3efbcc9112aac8.zip
ephy-page-menu-action: disconnect the visible handler on dispose
Diffstat (limited to 'src/ephy-page-menu-action.c')
-rw-r--r--src/ephy-page-menu-action.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ephy-page-menu-action.c b/src/ephy-page-menu-action.c
index 66ecabd64..b42d13c21 100644
--- a/src/ephy-page-menu-action.c
+++ b/src/ephy-page-menu-action.c
@@ -146,6 +146,16 @@ ephy_page_menu_action_dispose (GObject *object)
{
EphyPageMenuActionPrivate *priv = EPHY_PAGE_MENU_ACTION (object)->priv;
+ if (priv->menu) {
+ GtkWidget *button = NULL;
+ GSList *l = gtk_action_get_proxies (GTK_ACTION (object));
+
+ if (GTK_IS_BUTTON (l->data))
+ button = GTK_WIDGET (l->data);
+
+ g_signal_handlers_disconnect_by_func (priv->menu, G_CALLBACK (visible_cb), button);
+ }
+
g_clear_object (&priv->menu);
G_OBJECT_CLASS (ephy_page_menu_action_parent_class)->dispose (object);