summaryrefslogtreecommitdiff
path: root/gtk/gtkmenushell.c
diff options
context:
space:
mode:
authorMichael Natterer <mitch@imendio.com>2007-04-30 13:00:07 +0000
committerMichael Natterer <mitch@src.gnome.org>2007-04-30 13:00:07 +0000
commit1a3b0b486c874f0792226797386e4c4ea20e3041 (patch)
tree288a0ba2f025353dc46b7a0e513ab6e2d495b32b /gtk/gtkmenushell.c
parent2e184cebef1a312ef0bf416a1e2bbf3369b07435 (diff)
downloadgdk-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.c18
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);
+ }
}
}
}