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

Caolán McNamara caolanm at redhat.com
Tue Apr 17 19:41:55 UTC 2018


 vcl/unx/gtk3/gtk3gtkinst.cxx |   45 ++++++++++++++++++++++---------------------
 1 file changed, 24 insertions(+), 21 deletions(-)

New commits:
commit 42f5a0fbbfe91827fdc0a27525e8cd8938871db2
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 17 14:07:23 2018 +0100

    tdf#117034 check for runtime version check gtk_menu_popup_at_rect
    
    Change-Id: I2386c2d8f7c6754b197df9216eed82e0152a35c8
    Reviewed-on: https://gerrit.libreoffice.org/53045
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 2e5bb0083199..640f14a3c8ef 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -1550,32 +1550,35 @@ public:
         gulong nSignalId = g_signal_connect_swapped(G_OBJECT(m_pMenu), "deactivate", G_CALLBACK(g_main_loop_quit), pLoop);
 
 #if GTK_CHECK_VERSION(3,22,0)
-        GdkRectangle aRect{static_cast<int>(rRect.Left()), static_cast<int>(rRect.Top()),
-                           static_cast<int>(rRect.GetWidth()), static_cast<int>(rRect.GetHeight())};
-        gtk_menu_popup_at_rect(m_pMenu, gtk_widget_get_window(pWidget), &aRect, GDK_GRAVITY_NORTH_WEST, GDK_GRAVITY_NORTH_WEST, nullptr);
-#else
-        (void)rRect;
-
-        guint nButton;
-        guint32 nTime;
-
-        //typically there is an event, and we can then distinguish if this was
-        //launched from the keyboard (gets auto-mnemoniced) or the mouse (which
-        //doesn't)
-        GdkEvent *pEvent = gtk_get_current_event();
-        if (pEvent)
+        if (gtk_check_version(3, 22, 0) == nullptr)
         {
-            gdk_event_get_button(pEvent, &nButton);
-            nTime = gdk_event_get_time(pEvent);
+            GdkRectangle aRect{static_cast<int>(rRect.Left()), static_cast<int>(rRect.Top()),
+                               static_cast<int>(rRect.GetWidth()), static_cast<int>(rRect.GetHeight())};
+            gtk_menu_popup_at_rect(m_pMenu, gtk_widget_get_window(pWidget), &aRect, GDK_GRAVITY_NORTH_WEST, GDK_GRAVITY_NORTH_WEST, nullptr);
         }
         else
+#endif
         {
-            nButton = 0;
-            nTime = GtkSalFrame::GetLastInputEventTime();
-        }
+            guint nButton;
+            guint32 nTime;
+
+            //typically there is an event, and we can then distinguish if this was
+            //launched from the keyboard (gets auto-mnemoniced) or the mouse (which
+            //doesn't)
+            GdkEvent *pEvent = gtk_get_current_event();
+            if (pEvent)
+            {
+                gdk_event_get_button(pEvent, &nButton);
+                nTime = gdk_event_get_time(pEvent);
+            }
+            else
+            {
+                nButton = 0;
+                nTime = GtkSalFrame::GetLastInputEventTime();
+            }
 
-        gtk_menu_popup(m_pMenu, nullptr, nullptr, nullptr, nullptr, nButton, nTime);
-#endif
+            gtk_menu_popup(m_pMenu, nullptr, nullptr, nullptr, nullptr, nButton, nTime);
+        }
 
         if (g_main_loop_is_running(pLoop))
         {


More information about the Libreoffice-commits mailing list