From 0f462990247d71e598346a8f96faf6d04cd4515e Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Wed, 23 Sep 2009 19:08:16 +0200 Subject: Compile fix for platforms prior to Symbian^3. The advanced pointer events are only available on Symbian^3 and higher so we need to make sure these are protected by an #ifdef. We might have to re-factor this later into a plugin in order to get this running on older versions. Reviewed-by: axis --- src/corelib/global/qglobal.h | 1 + src/gui/kernel/qapplication_s60.cpp | 6 ++++++ src/gui/kernel/qt_s60_p.h | 2 ++ src/gui/kernel/qwidget_s60.cpp | 2 ++ 4 files changed, 11 insertions(+) diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index e722268..7fe67ec 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -2391,6 +2391,7 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf(); #define Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE //enabling new graphics resources #define QT_SYMBIAN_SUPPORTS_SGIMAGE +#define QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER #endif diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 1c198f9..27e8602 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -368,6 +368,7 @@ void QSymbianControl::HandleLongTapEventL( const TPoint& aPenEventLocation, cons m_previousEventLongTap = true; } +#ifdef QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER void QSymbianControl::translateAdvancedPointerEvent(const TAdvancedPointerEvent *event) { QApplicationPrivate *d = QApplicationPrivate::instance(); @@ -427,9 +428,11 @@ void QSymbianControl::translateAdvancedPointerEvent(const TAdvancedPointerEvent QTouchEvent::TouchScreen, d->appAllTouchPoints); } +#endif void QSymbianControl::HandlePointerEventL(const TPointerEvent& pEvent) { +#ifdef QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER if (pEvent.IsAdvancedPointerEvent()) { const TAdvancedPointerEvent *advancedPointerEvent = pEvent.AdvancedPointerEvent(); translateAdvancedPointerEvent(advancedPointerEvent); @@ -438,6 +441,7 @@ void QSymbianControl::HandlePointerEventL(const TPointerEvent& pEvent) return; } } +#endif m_longTapDetector->PointerEventL(pEvent); QT_TRYCATCH_LEAVING(HandlePointerEvent(pEvent)); @@ -1551,8 +1555,10 @@ TUint QApplicationPrivate::resolveS60ScanCode(TInt scanCode, TUint keysym) void QApplicationPrivate::initializeMultitouch_sys() { +#ifdef QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER if (HAL::Get(HALData::EPointer3DMaxPressure, maxTouchPressure) != KErrNone) maxTouchPressure = KMaxTInt; +#endif } void QApplicationPrivate::cleanupMultitouch_sys() diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index 3a2dd2b..0d48634 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -169,7 +169,9 @@ private: TKeyResponse sendKeyEvent(QWidget *widget, QKeyEvent *keyEvent); bool sendMouseEvent(QWidget *widget, QMouseEvent *mEvent); void HandleLongTapEventL( const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation ); +#ifdef QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER void translateAdvancedPointerEvent(const TAdvancedPointerEvent *event); +#endif private: QWidget *qwidget; diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 2e6139b..6b5e9b7 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -805,11 +805,13 @@ void QWidgetPrivate::setMask_sys(const QRegion& /* region */) void QWidgetPrivate::registerTouchWindow() { +#ifdef QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER Q_Q(QWidget); if (q->testAttribute(Qt::WA_WState_Created) && q->windowType() != Qt::Desktop) { RWindow *rwindow = static_cast(q->effectiveWinId()->DrawableWindow()); rwindow->EnableAdvancedPointers(); } +#endif } int QWidget::metric(PaintDeviceMetric m) const -- cgit v0.12