diff options
author | Liang Qi <liang.qi@qt.io> | 2017-06-07 12:05:33 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-06-07 14:02:43 +0200 |
commit | 7cbee5629604aa49c618829c8e3e55fc64e94df7 (patch) | |
tree | d12041105160c1cb21226b365edb9653d87b5853 /src/widgets/kernel | |
parent | e400b7e326c554ccd819448866265953d2a0f24d (diff) | |
parent | 5f0ce2333f7e11a3ffb5d16a27cd9303efa712d5 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/widgets/widgets/qmenu.cpp
Change-Id: I6d3baf56eb24501cddb129a3cb6b958ccc25a308
Diffstat (limited to 'src/widgets/kernel')
-rw-r--r-- | src/widgets/kernel/qstackedlayout.cpp | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget.cpp | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qwidgetwindow.cpp | 4 |
3 files changed, 6 insertions, 2 deletions
diff --git a/src/widgets/kernel/qstackedlayout.cpp b/src/widgets/kernel/qstackedlayout.cpp index d9c1c524d7..b8b6f4302d 100644 --- a/src/widgets/kernel/qstackedlayout.cpp +++ b/src/widgets/kernel/qstackedlayout.cpp @@ -253,7 +253,7 @@ QLayoutItem *QStackedLayout::itemAt(int index) const // on the object then) static bool qt_wasDeleted(const QWidget *w) { - return QWidgetPrivate::get(w)->wasDeleted; + return QObjectPrivate::get(w)->wasDeleted; } diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index caa17e4aea..37114449ba 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -5847,7 +5847,7 @@ QRectF QWidgetEffectSourcePrivate::boundingRect(Qt::CoordinateSystem system) con void QWidgetEffectSourcePrivate::draw(QPainter *painter) { - if (!context || context->painter != painter) { + if (!context || context->painter != painter || !context->sharedPainter) { m_widget->render(painter); return; } diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 7d7b553da1..653714743c 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -161,6 +161,10 @@ QObject *QWidgetWindow::focusObject() const if (!windowWidget) return Q_NULLPTR; + // A window can't have a focus object if it's being destroyed. + if (QWidgetPrivate::get(windowWidget)->data.in_destructor) + return nullptr; + QWidget *widget = windowWidget->focusWidget(); if (!widget) |