summaryrefslogtreecommitdiffstats
path: root/src/core/web_event_factory.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-02-01 12:19:37 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-03-15 16:52:24 +0000
commit6b35497375c07c49cca7317a4452acc6adc7a1cd (patch)
tree5531da6c89bb3da6495e8c83a0b86bff638f3baa /src/core/web_event_factory.cpp
parent91e13af7e1056a7bad83eb34ebf63fdd45e24bea (diff)
Basic adaptations for 65-based
Change-Id: I121b14d6a44e80f5eea4b159c58f7010d472926e Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src/core/web_event_factory.cpp')
-rw-r--r--src/core/web_event_factory.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp
index 44c04e3e6..1eeca8093 100644
--- a/src/core/web_event_factory.cpp
+++ b/src/core/web_event_factory.cpp
@@ -1313,6 +1313,21 @@ static void setBlinkWheelEventDelta(blink::WebMouseWheelEvent &webEvent)
webEvent.delta_y = webEvent.wheel_ticks_y * wheelScrollLines * cDefaultQtScrollStep;
}
+blink::WebMouseWheelEvent::Phase toBlinkPhase(Qt::ScrollPhase phase)
+{
+ switch (phase) {
+ case Qt::NoScrollPhase:
+ return blink::WebMouseWheelEvent::kPhaseNone;
+ case Qt::ScrollBegin:
+ return blink::WebMouseWheelEvent::kPhaseBegan;
+ case Qt::ScrollUpdate:
+ return blink::WebMouseWheelEvent::kPhaseChanged;
+ case Qt::ScrollEnd:
+ return blink::WebMouseWheelEvent::kPhaseEnded;
+ }
+ Q_UNREACHABLE();
+ return blink::WebMouseWheelEvent::kPhaseNone;
+}
blink::WebMouseWheelEvent WebEventFactory::toWebWheelEvent(QWheelEvent *ev, double dpiScale)
{
@@ -1325,6 +1340,8 @@ blink::WebMouseWheelEvent WebEventFactory::toWebWheelEvent(QWheelEvent *ev, doub
webEvent.wheel_ticks_x = static_cast<float>(ev->angleDelta().x()) / QWheelEvent::DefaultDeltasPerStep;
webEvent.wheel_ticks_y = static_cast<float>(ev->angleDelta().y()) / QWheelEvent::DefaultDeltasPerStep;
+ webEvent.phase = toBlinkPhase(ev->phase());
+ webEvent.has_precise_scrolling_deltas = true;
setBlinkWheelEventDelta(webEvent);
return webEvent;
@@ -1336,6 +1353,8 @@ bool WebEventFactory::coalesceWebWheelEvent(blink::WebMouseWheelEvent &webEvent,
return false;
if (modifiersForEvent(ev) != webEvent.GetModifiers())
return false;
+ if (toBlinkPhase(ev->phase()) != webEvent.phase)
+ return false;
webEvent.SetTimeStampSeconds(currentTimeForEvent(ev));
webEvent.SetPositionInWidget(ev->x() / dpiScale, ev->y() / dpiScale);