From 7b6c536cc7f6494ba59d8ee4b7d7fb4b2c48dbcd Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Tue, 11 Sep 2007 17:38:12 +0000 Subject: [PATCH] Make sure menu_shell->button gets reset to 0 when we bail out early here 2007-09-11 Michael Natterer * gtk/gtkmenu.c (gtk_menu_button_release): Make sure menu_shell->button gets reset to 0 when we bail out early here instead of chaining up, so it is in a consistent state for the next press/release in GtkMenuShell. Fixes bug #449371. svn path=/trunk/; revision=18795 --- ChangeLog | 7 +++++++ gtk/gtkmenu.c | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cb23b0a436..ae969b7942 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-09-11 Michael Natterer + + * gtk/gtkmenu.c (gtk_menu_button_release): Make sure + menu_shell->button gets reset to 0 when we bail out early here + instead of chaining up, so it is in a consistent state for the + next press/release in GtkMenuShell. Fixes bug #449371. + 2007-09-10 Kjartan Maraas * gtk/gtkentry.c: Fix some typos. Closes bug #475400. diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 7d44efbfd3..deb3a46c51 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -2710,7 +2710,17 @@ gtk_menu_button_release (GtkWidget *widget, */ if (GTK_IS_MENU_SHELL (gtk_get_event_widget ((GdkEvent *) event)) && pointer_in_menu_window (widget, event->x_root, event->y_root)) - return TRUE; + { + /* Ugly: make sure menu_shell->button gets reset to 0 when we + * bail out early here so it is in a consistent state for the + * next button_press/button_release in GtkMenuShell. + * See bug #449371. + */ + if (GTK_MENU_SHELL (widget)->active) + GTK_MENU_SHELL (widget)->button = 0; + + return TRUE; + } return GTK_WIDGET_CLASS (gtk_menu_parent_class)->button_release_event (widget, event); }