51 lines
1.1 KiB
Diff
51 lines
1.1 KiB
Diff
--- 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) &&
|