diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-05-10 20:25:28 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-05-11 09:43:50 +0200 |
commit | 65543a53c4058a6e491bc3ef8ca71970a1bc50b7 (patch) | |
tree | 89b6209c558ca91b2c7e0ac098ffb759c9a311f6 | |
parent | e104d1ee6918d9143d5d91ac46bbe3da6c6df1c5 (diff) |
gtk4: centralize g_main_loop_run ifdefry
Change-Id: I1a984783cf4c39500ab6dfdb59e5d1c604de4b5b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115361
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/inc/unx/gtk/gtkdata.hxx | 11 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtkframe.cxx | 10 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtkinst.cxx | 28 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtksalmenu.cxx | 11 |
4 files changed, 20 insertions, 40 deletions
diff --git a/vcl/inc/unx/gtk/gtkdata.hxx b/vcl/inc/unx/gtk/gtkdata.hxx index 2a741e855b94..ddf8a4b63aec 100644 --- a/vcl/inc/unx/gtk/gtkdata.hxx +++ b/vcl/inc/unx/gtk/gtkdata.hxx @@ -53,6 +53,17 @@ inline ::Window widget_get_xid(GtkWidget *widget) } #endif +inline void main_loop_run(GMainLoop* pLoop) +{ +#if !GTK_CHECK_VERSION(4, 0, 0) + gdk_threads_leave(); +#endif + g_main_loop_run(pLoop); +#if !GTK_CHECK_VERSION(4, 0, 0) + gdk_threads_enter(); +#endif +} + class GtkSalTimer final : public SalTimer { struct SalGtkTimeoutSource *m_pTimeout; diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx index f8effa137620..610fdb5ebd1f 100644 --- a/vcl/unx/gtk3/gtkframe.cxx +++ b/vcl/unx/gtk3/gtkframe.cxx @@ -4112,15 +4112,7 @@ public: gtk_drag_get_data(m_pWidget, m_pContext, it->second, m_nTime); if (g_main_loop_is_running(m_pLoop)) - { -#if !GTK_CHECK_VERSION(4, 0, 0) - gdk_threads_leave(); -#endif - g_main_loop_run(m_pLoop); -#if !GTK_CHECK_VERSION(4, 0, 0) - gdk_threads_enter(); -#endif - } + main_loop_run(m_pLoop); g_main_loop_unref(m_pLoop); m_pLoop = nullptr; diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index c696627af246..b8ddee717811 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -4894,13 +4894,7 @@ struct DialogRunner m_pLoop = g_main_loop_new(nullptr, false); m_nResponseId = GTK_RESPONSE_NONE; -#if !GTK_CHECK_VERSION(4, 0, 0) - gdk_threads_leave(); -#endif - g_main_loop_run(m_pLoop); -#if !GTK_CHECK_VERSION(4, 0, 0) - gdk_threads_enter(); -#endif + main_loop_run(m_pLoop); g_main_loop_unref(m_pLoop); @@ -5106,11 +5100,7 @@ private: gtk_menu_popup(GTK_MENU(pMenu), nullptr, nullptr, nullptr, nullptr, button, event_time); if (g_main_loop_is_running(pLoop)) - { - gdk_threads_leave(); - g_main_loop_run(pLoop); - gdk_threads_enter(); - } + main_loop_run(pLoop); g_main_loop_unref(pLoop); g_signal_handler_disconnect(pMenu, nSignalId); @@ -8645,11 +8635,8 @@ private: } if (g_main_loop_is_running(pLoop)) - { - gdk_threads_leave(); - g_main_loop_run(pLoop); - gdk_threads_enter(); - } + main_loop_run(pLoop); + g_main_loop_unref(pLoop); g_signal_handler_disconnect(m_pMenu, nSignalId); } @@ -8934,11 +8921,8 @@ public: } if (g_main_loop_is_running(pLoop)) - { - gdk_threads_leave(); - g_main_loop_run(pLoop); - gdk_threads_enter(); - } + main_loop_run(pLoop); + g_main_loop_unref(pLoop); g_signal_handler_disconnect(m_pMenu, nSignalId); gtk_menu_detach(m_pMenu); diff --git a/vcl/unx/gtk3/gtksalmenu.cxx b/vcl/unx/gtk3/gtksalmenu.cxx index b35bb59c14aa..ac28c3ca5961 100644 --- a/vcl/unx/gtk3/gtksalmenu.cxx +++ b/vcl/unx/gtk3/gtksalmenu.cxx @@ -536,15 +536,8 @@ bool GtkSalMenu::ShowNativePopupMenu(FloatingWindow* pWin, const tools::Rectangl #endif if (g_main_loop_is_running(pLoop)) - { -#if !GTK_CHECK_VERSION(4, 0, 0) - gdk_threads_leave(); -#endif - g_main_loop_run(pLoop); -#if !GTK_CHECK_VERSION(4, 0, 0) - gdk_threads_enter(); -#endif - } + main_loop_run(pLoop); + g_main_loop_unref(pLoop); mpVCLMenu->Deactivate(); |