summaryrefslogtreecommitdiffstats
path: root/meta/packages/gtk+/gtk+-2.6.4-1.osso7/menu-deactivate.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/gtk+/gtk+-2.6.4-1.osso7/menu-deactivate.patch')
-rw-r--r--meta/packages/gtk+/gtk+-2.6.4-1.osso7/menu-deactivate.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/meta/packages/gtk+/gtk+-2.6.4-1.osso7/menu-deactivate.patch b/meta/packages/gtk+/gtk+-2.6.4-1.osso7/menu-deactivate.patch
new file mode 100644
index 0000000000..29e665fbf3
--- /dev/null
+++ b/meta/packages/gtk+/gtk+-2.6.4-1.osso7/menu-deactivate.patch
@@ -0,0 +1,50 @@
1--- gtk+-2.4.4/gtk/gtkmenushell.c.old Thu Aug 26 23:45:28 2004
2+++ gtk+-2.4.4/gtk/gtkmenushell.c Fri Aug 27 00:13:33 2004
3@@ -37,7 +37,7 @@
4 #include "gtktearoffmenuitem.h"
5 #include "gtkwindow.h"
6
7-#define MENU_SHELL_TIMEOUT 500
8+#define MENU_SHELL_TIMEOUT 2000
9
10 enum {
11 DEACTIVATE,
12@@ -156,6 +156,7 @@
13 static GtkContainerClass *parent_class = NULL;
14 static guint menu_shell_signals[LAST_SIGNAL] = { 0 };
15
16+static int last_crossing_time;
17
18 GType
19 gtk_menu_shell_get_type (void)
20@@ -418,6 +419,7 @@
21 gtk_grab_add (GTK_WIDGET (menu_shell));
22 menu_shell->have_grab = TRUE;
23 menu_shell->active = TRUE;
24+ last_crossing_time = 0;
25 }
26 }
27
28@@ -545,6 +547,13 @@
29 menu_shell->activate_time = 0;
30 deactivate = FALSE;
31 }
32+
33+ if (last_crossing_time != 0
34+ && ((event->time - last_crossing_time) < 500))
35+ {
36+ last_crossing_time = 0;
37+ deactivate = FALSE;
38+ }
39
40 if (deactivate)
41 {
42@@ -597,6 +606,8 @@
43 if (menu_shell->active)
44 {
45 menu_item = gtk_get_event_widget ((GdkEvent*) event);
46+
47+ last_crossing_time = event->time;
48
49 if (!menu_item ||
50 (GTK_IS_MENU_ITEM (menu_item) &&