summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qwidget_win.cpp
diff options
context:
space:
mode:
authorDenis Dzyubenko <denis.dzyubenko@nokia.com>2009-11-09 13:20:37 +0100
committerDenis Dzyubenko <denis.dzyubenko@nokia.com>2009-11-09 13:20:37 +0100
commit09d00073e50957ca183e40f0d22aeef9c82edb49 (patch)
treefb53d8e800ae1d5e2740ec35b47ebea86eb2a008 /src/gui/kernel/qwidget_win.cpp
parent9fbcda80c8857202db01f58a9568e16604518b88 (diff)
parentd6a23684c8546fcd20ac032aa01985ca7ac69128 (diff)
Merge branch '4.6-platform' into 4.6
Diffstat (limited to 'src/gui/kernel/qwidget_win.cpp')
-rw-r--r--src/gui/kernel/qwidget_win.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gui/kernel/qwidget_win.cpp b/src/gui/kernel/qwidget_win.cpp
index b7ba273377..566e18cf43 100644
--- a/src/gui/kernel/qwidget_win.cpp
+++ b/src/gui/kernel/qwidget_win.cpp
@@ -2047,10 +2047,14 @@ void QWidgetPrivate::registerTouchWindow()
void QWidgetPrivate::winSetupGestures()
{
+#if !defined(QT_NO_NATIVE_GESTURES)
Q_Q(QWidget);
- if (!q || !q->isVisible())
+ if (!q || !q->isVisible() || !nativeGesturePanEnabled)
return;
+
QApplicationPrivate *qAppPriv = QApplicationPrivate::instance();
+ if (!qAppPriv->SetGestureConfig)
+ return;
WId winid = q->internalWinId();
bool needh = false;
@@ -2068,11 +2072,13 @@ void QWidgetPrivate::winSetupGestures()
needv = (vbarpolicy == Qt::ScrollBarAlwaysOn ||
(vbarpolicy == Qt::ScrollBarAsNeeded && vbar->minimum() < vbar->maximum()));
singleFingerPanEnabled = asa->d_func()->singleFingerPanEnabled;
- if (!winid)
+ if (!winid) {
+ q->setAttribute(Qt::WA_DontCreateNativeAncestors);
winid = q->winId(); // enforces the native winid on the viewport
+ }
}
#endif //QT_NO_SCROLLAREA
- if (winid && qAppPriv->SetGestureConfig) {
+ if (winid) {
GESTURECONFIG gc[1];
memset(gc, 0, sizeof(gc));
gc[0].dwID = GID_PAN;
@@ -2092,6 +2098,7 @@ void QWidgetPrivate::winSetupGestures()
qAppPriv->SetGestureConfig(winid, 0, sizeof(gc)/sizeof(gc[0]), gc, sizeof(gc[0]));
}
+#endif
}
QT_END_NAMESPACE