Close QWidget during destruction via QWindow
Ensures that the QWindow and platform machinery is involved in closing the widget. Change-Id: I4ca4ed0b1b31b835d62d2fc0a2158e34e15d710e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>bb10
parent
f06f39779c
commit
ec3260e5c7
|
|
@ -1466,7 +1466,7 @@ QWidget::~QWidget()
|
|||
|
||||
if (isWindow() && isVisible() && internalWinId()) {
|
||||
QT_TRY {
|
||||
d->handleClose(QWidgetPrivate::CloseNoEvent);
|
||||
d->close();
|
||||
} QT_CATCH(...) {
|
||||
// if we're out of memory, at least hide the window.
|
||||
QT_TRY {
|
||||
|
|
@ -8396,6 +8396,10 @@ bool QWidgetPrivate::handleClose(CloseMode mode)
|
|||
QPointer<QWidget> parentWidget = (q->parentWidget() && !QObjectPrivate::get(q->parentWidget())->wasDeleted) ? q->parentWidget() : nullptr;
|
||||
|
||||
bool quitOnClose = q->testAttribute(Qt::WA_QuitOnClose);
|
||||
|
||||
if (data.in_destructor)
|
||||
mode = CloseNoEvent;
|
||||
|
||||
if (mode != CloseNoEvent) {
|
||||
QCloseEvent e;
|
||||
if (mode == CloseWithSpontaneousEvent)
|
||||
|
|
|
|||
Loading…
Reference in New Issue