From 6716e7c3f1925560a5b4901581cabbaee4e01e28 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Thu, 25 Nov 2010 14:04:52 +0900 Subject: Fixed GtkMenuShell to deactivate itself at dispose time Since GdkDevice stuff, it seems that destroying an active menu doesnt get rid of all the device grabery, this fixes bug 635693. --- gtk/gtkmenushell.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gtk/gtkmenushell.c') diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index d630cdd253..7b94ce9b25 100644 --- a/gtk/gtkmenushell.c +++ b/gtk/gtkmenushell.c @@ -153,6 +153,7 @@ static void gtk_menu_shell_get_property (GObject *object, GParamSpec *pspec); static void gtk_menu_shell_realize (GtkWidget *widget); static void gtk_menu_shell_finalize (GObject *object); +static void gtk_menu_shell_dispose (GObject *object); static gint gtk_menu_shell_button_press (GtkWidget *widget, GdkEventButton *event); static gint gtk_menu_shell_button_release (GtkWidget *widget, @@ -222,6 +223,7 @@ gtk_menu_shell_class_init (GtkMenuShellClass *klass) object_class->set_property = gtk_menu_shell_set_property; object_class->get_property = gtk_menu_shell_get_property; object_class->finalize = gtk_menu_shell_finalize; + object_class->dispose = gtk_menu_shell_dispose; widget_class->realize = gtk_menu_shell_realize; widget_class->button_press_event = gtk_menu_shell_button_press; @@ -463,6 +465,16 @@ gtk_menu_shell_finalize (GObject *object) } +static void +gtk_menu_shell_dispose (GObject *object) +{ + GtkMenuShell *menu_shell = GTK_MENU_SHELL (object); + + gtk_menu_shell_deactivate (menu_shell); + + G_OBJECT_CLASS (gtk_menu_shell_parent_class)->dispose (object); +} + void gtk_menu_shell_append (GtkMenuShell *menu_shell, GtkWidget *child) -- cgit v1.2.1