diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-08-25 18:38:33 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-08-25 18:38:33 (GMT) |
commit | 065610d14fda00057724a46e2649db6bb98aca58 (patch) | |
tree | 6e47821da2d13b9405be3a30e0b6eee96917d634 /src | |
parent | d9dd68c4400c3ca590ea425d6f3d070ea6094099 (diff) | |
parent | 4c9212cdf38b35e89311416436f1e60b818b69c3 (diff) | |
download | Qt-065610d14fda00057724a46e2649db6bb98aca58.zip Qt-065610d14fda00057724a46e2649db6bb98aca58.tar.gz Qt-065610d14fda00057724a46e2649db6bb98aca58.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public:
Enabling AdvancedPointerEvents for active windows causes a panic
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/kernel/qapplication_s60.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qt_s60_p.h | 2 | ||||
-rw-r--r-- | src/gui/kernel/qwidget_s60.cpp | 9 |
3 files changed, 13 insertions, 3 deletions
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 7c5e790..e197dc5 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1344,6 +1344,11 @@ void QSymbianControl::setFocusSafely(bool focus) } } +bool QSymbianControl::isControlActive() +{ + return IsActivated() ? true : false; +} + /*! \typedef QApplication::QS60MainApplicationFactory \since 4.6 diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index ad6a99a..eb1aa18 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -211,6 +211,8 @@ public: void setFocusSafely(bool focus); + bool isControlActive(); + #ifdef Q_WS_S60 void FadeBehindPopup(bool fade){ popupFader.FadeBehindPopup( this, this, fade); } void HandleStatusPaneSizeChange(); diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 7494f92..fc13c93 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -366,7 +366,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de // Symbian windows are always created in an inactive state // We perform this assignment for the case where the window is being re-created - // as aa result of a call to setParent_sys, on either this widget or one of its + // as a result of a call to setParent_sys, on either this widget or one of its // ancestors. extra->activated = 0; @@ -410,7 +410,7 @@ void QWidgetPrivate::create_sys(WId window, bool /* initializeWindow */, bool de // Symbian windows are always created in an inactive state // We perform this assignment for the case where the window is being re-created - // as aa result of a call to setParent_sys, on either this widget or one of its + // as a result of a call to setParent_sys, on either this widget or one of its // ancestors. extra->activated = 0; @@ -954,7 +954,10 @@ void QWidgetPrivate::registerTouchWindow() Q_Q(QWidget); if (q->testAttribute(Qt::WA_WState_Created) && q->windowType() != Qt::Desktop) { RWindow *rwindow = static_cast<RWindow *>(q->effectiveWinId()->DrawableWindow()); - rwindow->EnableAdvancedPointers(); + QSymbianControl *window = static_cast<QSymbianControl *>(q->effectiveWinId()); + //Enabling advanced pointer events for controls that already have active windows causes a panic. + if (!window->isControlActive()) + rwindow->EnableAdvancedPointers(); } #endif } |