gtk+ r21049 - in trunk: . gtk



Author: bratsche
Date: Sat Aug  9 04:20:14 2008
New Revision: 21049
URL: http://svn.gnome.org/viewvc/gtk+?rev=21049&view=rev

Log:
2008-08-08  Cody Russell  <bratsche gnome org>

        * gtk/gtkmenushell.c
        * gtk/gtkmenu.c: In enter/leave notify events, check that the crossing
        mode is not GTK_GRAB, GTK_UNGRAB, or STATE_CHANGED.  Fixes regressions
        in menus caused by bug #56070.



Modified:
   trunk/ChangeLog
   trunk/gtk/gtkmenu.c
   trunk/gtk/gtkmenushell.c

Modified: trunk/gtk/gtkmenu.c
==============================================================================
--- trunk/gtk/gtkmenu.c	(original)
+++ trunk/gtk/gtkmenu.c	Sat Aug  9 04:20:14 2008
@@ -3623,6 +3623,11 @@
   GtkWidget *menu_item;
   gboolean   touchscreen_mode;
 
+  if (event->mode == GDK_CROSSING_GTK_GRAB ||
+      event->mode == GDK_CROSSING_GTK_UNGRAB ||
+      event->mode == GDK_CROSSING_STATE_CHANGED)
+    return TRUE;
+
   g_object_get (gtk_widget_get_settings (widget),
                 "gtk-touchscreen-mode", &touchscreen_mode,
                 NULL);
@@ -3694,6 +3699,11 @@
   GtkMenuItem *menu_item;
   GtkWidget *event_widget;
 
+  if (event->mode == GDK_CROSSING_GTK_GRAB ||
+      event->mode == GDK_CROSSING_GTK_UNGRAB ||
+      event->mode == GDK_CROSSING_STATE_CHANGED)
+    return TRUE;
+
   menu = GTK_MENU (widget);
   menu_shell = GTK_MENU_SHELL (widget); 
   

Modified: trunk/gtk/gtkmenushell.c
==============================================================================
--- trunk/gtk/gtkmenushell.c	(original)
+++ trunk/gtk/gtkmenushell.c	Sat Aug  9 04:20:14 2008
@@ -802,6 +802,11 @@
 {
   GtkMenuShell *menu_shell = GTK_MENU_SHELL (widget);
 
+  if (event->mode == GDK_CROSSING_GTK_GRAB ||
+      event->mode == GDK_CROSSING_GTK_UNGRAB ||
+      event->mode == GDK_CROSSING_STATE_CHANGED)
+    return TRUE;
+
   if (menu_shell->active)
     {
       GtkWidget *menu_item;
@@ -867,6 +872,11 @@
 gtk_menu_shell_leave_notify (GtkWidget        *widget,
 			     GdkEventCrossing *event)
 {
+  if (event->mode == GDK_CROSSING_GTK_GRAB ||
+      event->mode == GDK_CROSSING_GTK_GRAB ||
+      event->mode == GDK_CROSSING_STATE_CHANGED)
+    return TRUE;
+
   if (GTK_WIDGET_VISIBLE (widget))
     {
       GtkMenuShell *menu_shell = GTK_MENU_SHELL (widget);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]