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
This commit is contained in:
Uwe Rathmann 2019-02-05 10:12:39 +01:00
parent 9845aa2966
commit bc7562234d

View File

@ -251,9 +251,20 @@ void QskPopup::updateInputGrabber()
} }
else else
{ {
delete m_data->inputGrabber; 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; m_data->inputGrabber = nullptr;
} }
}
} }
QskAspect::Aspect QskPopup::faderAspect() const QskAspect::Aspect QskPopup::faderAspect() const