+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.
+
2008-08-09 Sven Herzberg <sven@imendio.com>
Get the gdk+cairo test to pass distcheck, too
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);
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);
{
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;
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);