summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-05-10 20:25:28 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-05-11 09:43:50 +0200
commit65543a53c4058a6e491bc3ef8ca71970a1bc50b7 (patch)
tree89b6209c558ca91b2c7e0ac098ffb759c9a311f6
parente104d1ee6918d9143d5d91ac46bbe3da6c6df1c5 (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.hxx11
-rw-r--r--vcl/unx/gtk3/gtkframe.cxx10
-rw-r--r--vcl/unx/gtk3/gtkinst.cxx28
-rw-r--r--vcl/unx/gtk3/gtksalmenu.cxx11
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();