diff options
author | axis <qt-info@nokia.com> | 2009-12-16 08:37:34 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-12-16 08:37:34 (GMT) |
commit | 6e527912d719b0448b91eba1d6a99b9cbe58170a (patch) | |
tree | 17ba94b2af34ba2ab953fbd7be84955bdea39370 /src/gui/kernel | |
parent | 8152bd167c1a728c54a9976297bb53e09d131d66 (diff) | |
parent | a9d4faa330698a7972c7fa4b3582fb20548b32f6 (diff) | |
download | Qt-6e527912d719b0448b91eba1d6a99b9cbe58170a.zip Qt-6e527912d719b0448b91eba1d6a99b9cbe58170a.tar.gz Qt-6e527912d719b0448b91eba1d6a99b9cbe58170a.tar.bz2 |
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60
Conflicts:
src/s60installs/bwins/QtGuiu.def
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qapplication.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index 9f4cd0c..8c63968 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -4092,9 +4092,15 @@ bool QApplication::notify(QObject *receiver, QEvent *e) bool acceptTouchEvents = widget->testAttribute(Qt::WA_AcceptTouchEvents); touchEvent->setWidget(widget); touchEvent->setAccepted(acceptTouchEvents); + QWeakPointer<QWidget> p = widget; res = acceptTouchEvents && d->notify_helper(widget, touchEvent); eventAccepted = touchEvent->isAccepted(); - widget->setAttribute(Qt::WA_WState_AcceptedTouchBeginEvent, res && eventAccepted); + if (p.isNull()) { + // widget was deleted + widget = 0; + } else { + widget->setAttribute(Qt::WA_WState_AcceptedTouchBeginEvent, res && eventAccepted); + } touchEvent->spont = false; if (res && eventAccepted) { // the first widget to accept the TouchBegin gets an implicit grab. @@ -4103,7 +4109,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) d->widgetForTouchPointId[touchPoint.id()] = widget; } break; - } else if (widget->isWindow() || widget->testAttribute(Qt::WA_NoMousePropagation)) { + } else if (p.isNull() || widget->isWindow() || widget->testAttribute(Qt::WA_NoMousePropagation)) { break; } QPoint offset = widget->pos(); |