summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-07-02 12:54:58 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-07-02 22:42:49 +0200
commit01d30f83992c185d38943db200bafad2b4522c21 (patch)
tree99992c1e0648d70576a245e5985f067b28781325 /src/widgets
parent117a5aa744e990fdf44e764a4347335d85db03d0 (diff)
Pass modifier and button information down the call stack
Gets rid of calls to QGuiApplication::mouseButtons and QGuiApplication::keyboardModifiers. Task-number: QTBUG-73829 Change-Id: Idba978fe8db21622ca05c4882c74fd2792b119e5 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/util/qflickgesture.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/widgets/util/qflickgesture.cpp b/src/widgets/util/qflickgesture.cpp
index 7ebd37d854..7d12350c9a 100644
--- a/src/widgets/util/qflickgesture.cpp
+++ b/src/widgets/util/qflickgesture.cpp
@@ -213,7 +213,7 @@ public:
mouseTarget = nullptr;
}
- void scrollerBecameActive()
+ void scrollerBecameActive(Qt::KeyboardModifiers eventModifiers, Qt::MouseButtons eventButtons)
{
if (pressDelayEvent) {
// we still haven't even sent the press, so just throw it away now
@@ -246,8 +246,8 @@ public:
qFGDebug() << "QFG: sending a fake mouse release at far-far-away to " << mouseTarget;
QMouseEvent re(QEvent::MouseButtonRelease, QPoint(), farFarAway, farFarAway,
- mouseButton, QGuiApplication::mouseButtons() & ~mouseButton,
- QGuiApplication::keyboardModifiers(), mouseEventSource);
+ mouseButton, eventButtons & ~mouseButton,
+ eventModifiers, mouseEventSource);
sendMouseEvent(&re, RegrabMouseAfterwards);
// don't clear the mouseTarget just yet, since we need to explicitly ungrab the mouse on release!
}
@@ -429,6 +429,8 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
// qFGDebug() << "FlickGesture "<<state<<"watched:"<<watched<<"receiver"<<d->receiver<<"event"<<event->type()<<"button"<<button;
+ Qt::KeyboardModifiers keyboardModifiers = Qt::NoModifier;
+ Qt::MouseButtons mouseButtons = Qt::NoButton;
switch (event->type()) {
case QEvent::MouseButtonPress:
case QEvent::MouseButtonRelease:
@@ -437,6 +439,8 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
return Ignore;
if (button != Qt::NoButton) {
me = static_cast<const QMouseEvent *>(event);
+ keyboardModifiers = me->modifiers();
+ mouseButtons = me->buttons();
globalPos = me->globalPosition().toPoint();
}
break;
@@ -448,6 +452,8 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
return Ignore;
if (button != Qt::NoButton) {
gsme = static_cast<const QGraphicsSceneMouseEvent *>(event);
+ keyboardModifiers = gsme->modifiers();
+ mouseButtons = gsme->buttons();
globalPos = gsme->screenPos();
}
break;
@@ -457,6 +463,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
case QEvent::TouchUpdate:
if (button == Qt::NoButton) {
te = static_cast<const QTouchEvent *>(event);
+ keyboardModifiers = te->modifiers();
if (!te->touchPoints().isEmpty())
globalPos = te->touchPoints().at(0).globalPosition().toPoint();
}
@@ -634,7 +641,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
#endif
) {
if (!scrollerWasDragging && !scrollerWasScrolling && scrollerIsActive)
- PressDelayHandler::instance()->scrollerBecameActive();
+ PressDelayHandler::instance()->scrollerBecameActive(keyboardModifiers, mouseButtons);
else if (scrollerWasScrolling && (scroller->state() == QScroller::Dragging || scroller->state() == QScroller::Inactive))
PressDelayHandler::instance()->scrollerWasIntercepted();
}