From bc7562234d54f1d7dee240872e630909d3089409 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Tue, 5 Feb 2019 10:12:39 +0100 Subject: [PATCH] use deferred deletion for the mouse grabber, otherwise we might run into crashes in QQuickWindow, when deleting is the result of a mouse release somewhere below the popup --- src/controls/QskPopup.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/controls/QskPopup.cpp b/src/controls/QskPopup.cpp index a1209fdd..e6cca4b6 100644 --- a/src/controls/QskPopup.cpp +++ b/src/controls/QskPopup.cpp @@ -251,8 +251,19 @@ void QskPopup::updateInputGrabber() } else { - delete m_data->inputGrabber; - m_data->inputGrabber = nullptr; + if ( m_data->inputGrabber ) + { + /* + In QQuickWindowPrivate::deliverPressOrReleaseEvent ( 5.12 ) + might crash, when we delete the grabber as a result of a + mouse event somewehere below the popup. + */ + m_data->inputGrabber->setParentItem( nullptr ); + m_data->inputGrabber->setParent( nullptr ); + m_data->inputGrabber->deleteLater(); + + m_data->inputGrabber = nullptr; + } } }