vcl/unx/gtk3/gtkframe.cxx | 9 +++++++++ 1 file changed, 9 insertions(+)
New commits: commit 275e05cc232b1dc39645f9444ee98932fb3ded58 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Jul 28 13:00:24 2022 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Jul 29 20:54:04 2022 +0200 gtk4: update vcl when popup was closed by some external means Change-Id: Ie580cd0b42ca1c928bfea20a4a9f1494021047d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137560 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx index 008a8d5dbbdb..0f783d9e06b5 100644 --- a/vcl/unx/gtk3/gtkframe.cxx +++ b/vcl/unx/gtk3/gtkframe.cxx @@ -1353,6 +1353,14 @@ void GtkSalFrame::ListenPortalSettings() m_nPortalSettingChangedSignalId = g_signal_connect(m_pSettingsPortal, "g-signal", G_CALLBACK(settings_portal_changed_cb), this); } +#if GTK_CHECK_VERSION(4,0,0) +static void PopoverClosed(GtkPopover*, GtkSalFrame* pThis) +{ + SolarMutexGuard aGuard; + pThis->closePopup(); +} +#endif + void GtkSalFrame::Init( SalFrame* pParent, SalFrameStyleFlags nStyle ) { if( nStyle & SalFrameStyleFlags::DEFAULT ) // ensure default style @@ -1398,6 +1406,7 @@ void GtkSalFrame::Init( SalFrame* pParent, SalFrameStyleFlags nStyle ) { m_pWindow = gtk_popover_new(); gtk_popover_set_has_arrow(GTK_POPOVER(m_pWindow), false); + g_signal_connect(m_pWindow, "closed", G_CALLBACK(PopoverClosed), this); } #endif