[gtk/menushell-bandaid] Make menu activation work again



commit 2deb0e7e1daf3494e998bc6d3264075ccb12c91c
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Apr 6 00:20:21 2019 +0000

    Make menu activation work again
    
    After we stopped untranslatable delivering events, menus stopped
    working 'the second time'. After some painful debugging, it appears
    that this is caused by the menushell code deliberately grabbing
    on the menubar *after* grabbing on the menu, causing events to
    be deleivered to the wrong toplevel. This did not use to matter,
    but now we drop these events.
    
    Absent a more thorough rewrite of menus, just don't grab on
    the menubar. This makes menu activation work again and does not
    appear to have ill effects, on either Wayland or X.
    
    Closes: https://gitlab.gnome.org/GNOME/gtk/issues/1796

 gtk/gtkmenushell.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c
index 2521b8368c..b538c5e011 100644
--- a/gtk/gtkmenushell.c
+++ b/gtk/gtkmenushell.c
@@ -708,7 +708,7 @@ multi_press_pressed (GtkGestureMultiPress *gesture,
               gtk_widget_get_parent (menu_item) == GTK_WIDGET (menu_shell) &&
               menu_item != priv->active_menu_item)
             {
-              gtk_menu_shell_activate (menu_shell);
+              priv->active = TRUE;
 
               if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement == GTK_TOP_BOTTOM)
                 {


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