diff options
Diffstat (limited to 'packages/gtk+/gtk+-2.8.16/menu-deactivate.patch')
-rw-r--r-- | packages/gtk+/gtk+-2.8.16/menu-deactivate.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/packages/gtk+/gtk+-2.8.16/menu-deactivate.patch b/packages/gtk+/gtk+-2.8.16/menu-deactivate.patch new file mode 100644 index 0000000000..29e665fbf3 --- /dev/null +++ b/packages/gtk+/gtk+-2.8.16/menu-deactivate.patch @@ -0,0 +1,50 @@ +--- gtk+-2.4.4/gtk/gtkmenushell.c.old Thu Aug 26 23:45:28 2004 ++++ gtk+-2.4.4/gtk/gtkmenushell.c Fri Aug 27 00:13:33 2004 +@@ -37,7 +37,7 @@ + #include "gtktearoffmenuitem.h" + #include "gtkwindow.h" + +-#define MENU_SHELL_TIMEOUT 500 ++#define MENU_SHELL_TIMEOUT 2000 + + enum { + DEACTIVATE, +@@ -156,6 +156,7 @@ + static GtkContainerClass *parent_class = NULL; + static guint menu_shell_signals[LAST_SIGNAL] = { 0 }; + ++static int last_crossing_time; + + GType + gtk_menu_shell_get_type (void) +@@ -418,6 +419,7 @@ + gtk_grab_add (GTK_WIDGET (menu_shell)); + menu_shell->have_grab = TRUE; + menu_shell->active = TRUE; ++ last_crossing_time = 0; + } + } + +@@ -545,6 +547,13 @@ + menu_shell->activate_time = 0; + deactivate = FALSE; + } ++ ++ if (last_crossing_time != 0 ++ && ((event->time - last_crossing_time) < 500)) ++ { ++ last_crossing_time = 0; ++ deactivate = FALSE; ++ } + + if (deactivate) + { +@@ -597,6 +606,8 @@ + if (menu_shell->active) + { + menu_item = gtk_get_event_widget ((GdkEvent*) event); ++ ++ last_crossing_time = event->time; + + if (!menu_item || + (GTK_IS_MENU_ITEM (menu_item) && |