summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-02-16 17:02:52 +0000
committerCaolán McNamara <caolanm@redhat.com>2020-02-17 15:45:01 +0100
commit734ec70f30340a7d943dc8121b51a2a24902a5c5 (patch)
treede1a3f164453fa7705b9b160e9b047954f3600a2
parent0ba9ea50dcae6739e93f81dff762f2656054bb93 (diff)
disconnect damage when target window is destroyed
Change-Id: I4b14ec12112e54bc913fe960808f0bbf8ba4bada Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88820 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--vcl/unx/gtk3/gtk3gtkframe.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/vcl/unx/gtk3/gtk3gtkframe.cxx b/vcl/unx/gtk3/gtk3gtkframe.cxx
index ee32281378be..3165067028d5 100644
--- a/vcl/unx/gtk3/gtk3gtkframe.cxx
+++ b/vcl/unx/gtk3/gtk3gtkframe.cxx
@@ -3694,6 +3694,10 @@ void GtkSalFrame::signalDestroy( GtkWidget* pObj, gpointer frame )
GtkSalFrame* pThis = static_cast<GtkSalFrame*>(frame);
if( pObj == pThis->m_pWindow )
{
+ pThis->m_aDamageHandler.damaged = nullptr;
+ pThis->m_aDamageHandler.handle = nullptr;
+ if (pThis->m_pSurface)
+ cairo_surface_set_user_data(pThis->m_pSurface, SvpSalGraphics::getDamageKey(), nullptr, nullptr);
pThis->m_pFixedContainer = nullptr;
pThis->m_pEventBox = nullptr;
pThis->m_pTopLevelGrid = nullptr;