From 0c18fe881baf2cadd13f49a2ed228224410dc0dd Mon Sep 17 00:00:00 2001 From: Soeren Sandmann Date: Thu, 3 Jun 2004 00:14:49 +0000 Subject: [PATCH] Revert previous commit. It caused the problem of sticky right click menus Thu Jun 3 08:07:59 2004 Soeren Sandmann * gtk/gtkmenu.c: Revert previous commit. It caused the problem of sticky right click menus to return. --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ gtk/gtkmenu.c | 38 +++++++++++++++++--------------------- 5 files changed, 37 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9f47da2055..17c3f2316b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Jun 3 08:07:59 2004 Soeren Sandmann + + * gtk/gtkmenu.c: Revert previous commit. It caused the problem + of sticky right click menus to return. + Wed Jun 2 01:56:02 2004 Soeren Sandmann * gtk/gtkmenu.c: Fix the stay up algorithm for combo boxes to diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9f47da2055..17c3f2316b 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Thu Jun 3 08:07:59 2004 Soeren Sandmann + + * gtk/gtkmenu.c: Revert previous commit. It caused the problem + of sticky right click menus to return. + Wed Jun 2 01:56:02 2004 Soeren Sandmann * gtk/gtkmenu.c: Fix the stay up algorithm for combo boxes to diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9f47da2055..17c3f2316b 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Thu Jun 3 08:07:59 2004 Soeren Sandmann + + * gtk/gtkmenu.c: Revert previous commit. It caused the problem + of sticky right click menus to return. + Wed Jun 2 01:56:02 2004 Soeren Sandmann * gtk/gtkmenu.c: Fix the stay up algorithm for combo boxes to diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9f47da2055..17c3f2316b 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Thu Jun 3 08:07:59 2004 Soeren Sandmann + + * gtk/gtkmenu.c: Revert previous commit. It caused the problem + of sticky right click menus to return. + Wed Jun 2 01:56:02 2004 Soeren Sandmann * gtk/gtkmenu.c: Fix the stay up algorithm for combo boxes to diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 1670659bca..c031df0d59 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -72,16 +72,10 @@ struct _GtkMenuAttachData GtkMenuDetachFunc detacher; }; -typedef enum { - NONE, - SEEN_MOTION, - SEEN_MOTION_ENTER, - SEEN_MOTION_ENTER_MOTION -} SelectState; - struct _GtkMenuPrivate { - SelectState select_state; + gboolean seen_enter; + gboolean seen_motion; gboolean have_position; gint x; gint y; @@ -1248,7 +1242,8 @@ gtk_menu_popup (GtkMenu *menu, menu_shell->parent_menu_shell = parent_menu_shell; - priv->select_state = NONE; + priv->seen_enter = FALSE; + priv->seen_motion = FALSE; /* Find the last viewable ancestor, and make an X grab on it */ @@ -2695,17 +2690,11 @@ gtk_menu_motion_notify (GtkWidget *widget, gtk_menu_handle_scrolling (GTK_MENU (widget), TRUE); - if (priv->select_state == NONE) + priv->seen_motion = TRUE; + if (priv->seen_enter) { - priv->select_state = SEEN_MOTION; - } - else if (priv->select_state == SEEN_MOTION_ENTER) - { - priv->select_state = SEEN_MOTION_ENTER_MOTION; - - /* After having seen both a motion, an enter, and a motion - * in that order, button releases should be interpreted - * as "activate". + /* After having seen both a motion and an enter, + * button releases should be interpreted as "activate". */ GTK_MENU_SHELL (widget)->activate_time = 0; @@ -2946,8 +2935,15 @@ gtk_menu_enter_notify (GtkWidget *widget, if (!menu_shell->ignore_enter) gtk_menu_handle_scrolling (GTK_MENU (widget), TRUE); - if (priv->select_state == SEEN_MOTION) - priv->select_state = SEEN_MOTION_ENTER; + priv->seen_enter = TRUE; + if (priv->seen_motion) + { + /* After having seen both a motion and an enter, + * button releases should be interpreted as "activate". + */ + + GTK_MENU_SHELL (widget)->activate_time = 0; + } } /* If this is a faked enter (see gtk_menu_motion_notify), 'widget'