diff options
author | Michael Natterer <mitch@imendio.com> | 2007-04-30 13:00:07 +0000 |
---|---|---|
committer | Michael Natterer <mitch@src.gnome.org> | 2007-04-30 13:00:07 +0000 |
commit | 1a3b0b486c874f0792226797386e4c4ea20e3041 (patch) | |
tree | 288a0ba2f025353dc46b7a0e513ab6e2d495b32b /gtk/gtkmenushell.c | |
parent | 2e184cebef1a312ef0bf416a1e2bbf3369b07435 (diff) | |
download | gdk-pixbuf-1a3b0b486c874f0792226797386e4c4ea20e3041.tar.gz |
pop up the submenu explicitely only in touchscreen mode since otherwise
2007-04-30 Michael Natterer <mitch@imendio.com>
* gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): pop up the
submenu explicitely only in touchscreen mode since otherwise
selecting the item already pops up the submenu. Restores the
drag-selection timeout (spotted by Søren Sandmann, #128968).
svn path=/trunk/; revision=17735
Diffstat (limited to 'gtk/gtkmenushell.c')
-rw-r--r-- | gtk/gtkmenushell.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index 6d9ab9499..65ddc1211 100644 --- a/gtk/gtkmenushell.c +++ b/gtk/gtkmenushell.c @@ -810,17 +810,25 @@ gtk_menu_shell_enter_notify (GtkWidget *widget, * entering a menu item where we wouldn't want to show * its submenu. */ - if ((event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON2_MASK)) && - GTK_MENU_ITEM (menu_item)->submenu != NULL && - !GTK_WIDGET_VISIBLE (GTK_MENU_ITEM (menu_item)->submenu)) + if ((event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) && + GTK_MENU_ITEM (menu_item)->submenu != NULL) { GtkMenuShellPrivate *priv; priv = GTK_MENU_SHELL_GET_PRIVATE (menu_item->parent); + priv->activated_submenu = TRUE; - _gtk_menu_item_popup_submenu (menu_item, TRUE); + if (!GTK_WIDGET_VISIBLE (GTK_MENU_ITEM (menu_item)->submenu)) + { + gboolean touchscreen_mode; - priv->activated_submenu = TRUE; + g_object_get (gtk_widget_get_settings (widget), + "gtk-touchscreen-mode", &touchscreen_mode, + NULL); + + if (touchscreen_mode) + _gtk_menu_item_popup_submenu (menu_item, TRUE); + } } } } |