summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-03-10 09:10:21 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-13 17:18:36 +0100
commita85849604239034742c47d5be628122bae825c9e (patch)
treef14ad6218964ca334a429f2cd34409ac51b83885
parented45773caf76455bb737da3c0c4429f99c9a15ad (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.cpp10
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);
+ }
}
}
}