[Libreoffice-commits] core.git: vcl/unx

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Tue Jun 2 18:58:57 UTC 2020


 vcl/unx/gtk3/gtk3gtkinst.cxx |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

New commits:
commit 07c2bfc895c7a4074cb0cdcb12fead7624fc6336
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Jun 2 17:19:49 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Jun 2 20:58:24 2020 +0200

    use pseudo keyevent we already have if gtk_get_current_event is null
    
    so gtk's desire for one can be satisfied
    
    Change-Id: I486331bdc1778f07c02d0249f239c8d14fc4f5e8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95371
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 7e851797806c..a8e9b6c2b69f 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -7531,11 +7531,16 @@ public:
             // Send a keyboard event through gtk_main_do_event to toggle any active tooltip offs
             // before trying to launch the menu
             // https://gitlab.gnome.org/GNOME/gtk/issues/1785
-            GdkEvent *event = GtkSalFrame::makeFakeKeyPress(pWidget);
-            gtk_main_do_event(event);
-            gdk_event_free(event);
+            GdkEvent *pKeyEvent = GtkSalFrame::makeFakeKeyPress(pWidget);
+            gtk_main_do_event(pKeyEvent);
 
-            gtk_menu_popup_at_rect(m_pMenu, gtk_widget_get_window(pWidget), &aRect, GDK_GRAVITY_NORTH_WEST, GDK_GRAVITY_NORTH_WEST, nullptr);
+            GdkEvent *pTriggerEvent = gtk_get_current_event();
+            if (!pTriggerEvent)
+                pTriggerEvent = pKeyEvent;
+
+            gtk_menu_popup_at_rect(m_pMenu, gtk_widget_get_window(pWidget), &aRect, GDK_GRAVITY_NORTH_WEST, GDK_GRAVITY_NORTH_WEST, pTriggerEvent);
+
+            gdk_event_free(pKeyEvent);
         }
         else
 #else


More information about the Libreoffice-commits mailing list