[Libreoffice-commits] core.git: vcl/inc vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Mon May 10 13:59:52 UTC 2021
vcl/inc/unx/gtk/gtkframe.hxx | 4 +++-
vcl/unx/gtk3/gtkframe.cxx | 25 +++++++++++++++++++++----
2 files changed, 24 insertions(+), 5 deletions(-)
New commits:
commit 62414237e04d16ffe69ed460d336ebc7a6f4bf5f
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon May 10 12:22:20 2021 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon May 10 15:58:54 2021 +0200
gtk4: new close-request looks equivalent to old delete-event
Change-Id: I4176de9e8eb2029979f478e4a32e25e0314c7d99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115329
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index 793633905716..045d2c5a4379 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -279,18 +279,20 @@ class GtkSalFrame final : public SalFrame
#endif
void WindowMap();
void WindowUnmap();
+ bool WindowCloseRequest();
#if GTK_CHECK_VERSION(4, 0, 0)
static void signalMap( GtkWidget*, gpointer );
static void signalUnmap( GtkWidget*, gpointer );
+ static gboolean signalDelete( GtkWidget*, gpointer );
#else
static gboolean signalMap( GtkWidget*, GdkEvent*, gpointer );
static gboolean signalUnmap( GtkWidget*, GdkEvent*, gpointer );
+ static gboolean signalDelete( GtkWidget*, GdkEvent*, gpointer );
#endif
#if !GTK_CHECK_VERSION(4, 0, 0)
static gboolean signalConfigure( GtkWidget*, GdkEventConfigure*, gpointer );
static gboolean signalMotion( GtkWidget*, GdkEventMotion*, gpointer );
static gboolean signalKey( GtkWidget*, GdkEventKey*, gpointer );
- static gboolean signalDelete( GtkWidget*, GdkEvent*, gpointer );
static gboolean signalWindowState( GtkWidget*, GdkEvent*, gpointer );
static gboolean signalScroll( GtkWidget*, GdkEvent*, gpointer );
static gboolean signalCrossing( GtkWidget*, GdkEventCrossing*, gpointer );
diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx
index 004fde48b3ea..e2ef4f28a273 100644
--- a/vcl/unx/gtk3/gtkframe.cxx
+++ b/vcl/unx/gtk3/gtkframe.cxx
@@ -986,15 +986,16 @@ void GtkSalFrame::InitCommon()
#if !GTK_CHECK_VERSION(4,0,0)
g_signal_connect( G_OBJECT(m_pWindow), "map-event", G_CALLBACK(signalMap), this );
g_signal_connect( G_OBJECT(m_pWindow), "unmap-event", G_CALLBACK(signalUnmap), this );
+ g_signal_connect( G_OBJECT(m_pWindow), "delete-event", G_CALLBACK(signalDelete), this );
#else
g_signal_connect( G_OBJECT(m_pWindow), "map", G_CALLBACK(signalMap), this );
g_signal_connect( G_OBJECT(m_pWindow), "unmap", G_CALLBACK(signalUnmap), this );
+ g_signal_connect( G_OBJECT(m_pWindow), "close-request", G_CALLBACK(signalDelete), this );
#endif
#if !GTK_CHECK_VERSION(4,0,0)
g_signal_connect( G_OBJECT(m_pWindow), "configure-event", G_CALLBACK(signalConfigure), this );
g_signal_connect( G_OBJECT(m_pWindow), "key-press-event", G_CALLBACK(signalKey), this );
g_signal_connect( G_OBJECT(m_pWindow), "key-release-event", G_CALLBACK(signalKey), this );
- g_signal_connect( G_OBJECT(m_pWindow), "delete-event", G_CALLBACK(signalDelete), this );
g_signal_connect( G_OBJECT(m_pWindow), "window-state-event", G_CALLBACK(signalWindowState), this );
#endif
g_signal_connect( G_OBJECT(m_pWindow), "destroy", G_CALLBACK(signalDestroy), this );
@@ -3744,14 +3745,30 @@ gboolean GtkSalFrame::signalKey(GtkWidget* pWidget, GdkEventKey* pEvent, gpointe
return bStopProcessingKey;
}
+#endif
-gboolean GtkSalFrame::signalDelete( GtkWidget*, GdkEvent*, gpointer frame )
+bool GtkSalFrame::WindowCloseRequest()
{
- GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
- pThis->CallCallbackExc( SalEvent::Close, nullptr );
+ SolarMutexGuard aGuard;
+ CallCallbackExc(SalEvent::Close, nullptr);
return true;
}
+#if GTK_CHECK_VERSION(4, 0, 0)
+gboolean GtkSalFrame::signalDelete(GtkWidget*, gpointer frame)
+{
+ GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
+ return pThis->WindowCloseRequest();
+}
+#else
+gboolean GtkSalFrame::signalDelete(GtkWidget*, GdkEvent*, gpointer frame)
+{
+ GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
+ return pThis->WindowCloseRequest();
+}
+#endif
+
+#if !GTK_CHECK_VERSION(4, 0, 0)
void GtkSalFrame::signalStyleUpdated(GtkWidget*, gpointer frame)
{
GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
More information about the Libreoffice-commits
mailing list