diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-03-10 09:10:21 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-13 17:18:36 +0100 |
commit | a85849604239034742c47d5be628122bae825c9e (patch) | |
tree | f14ad6218964ca334a429f2cd34409ac51b83885 | |
parent | ed45773caf76455bb737da3c0c4429f99c9a15ad (diff) |
Fix a crash when reparenting widgets on Windows.
Introduced by a9edbeddafe5d8866192de44f4028d07bd93013a .
Task-number: QTBUG-37346
Task-number: QTBUG-30276
Change-Id: I81e218839db50a88a8b149dd5481bfd0835284da
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
-rw-r--r-- | src/gui/kernel/qwidget_win.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp index 16265e9cd4..1ab76c795b 100644 --- a/src/gui/kernel/qwidget_win.cpp +++ b/src/gui/kernel/qwidget_win.cpp @@ -633,10 +633,12 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f) } QList<QWidget *> registeredDropChildren; if (QWidget *nativeParent = q->internalWinId() ? q : q->nativeParentWidget()) { - foreach (QWidget *w, nativeParent->d_func()->extra->oleDropWidgets) { - if (w && q->isAncestorOf(w)) { - registeredDropChildren.push_back(w); - w->setAttribute(Qt::WA_DropSiteRegistered, false); + if (const QWExtra *extra = nativeParent->d_func()->extra) { + foreach (QWidget *w, extra->oleDropWidgets) { + if (w && q->isAncestorOf(w)) { + registeredDropChildren.push_back(w); + w->setAttribute(Qt::WA_DropSiteRegistered, false); + } } } } |