diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-02-01 12:19:37 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-03-15 16:52:24 +0000 |
commit | 6b35497375c07c49cca7317a4452acc6adc7a1cd (patch) | |
tree | 5531da6c89bb3da6495e8c83a0b86bff638f3baa /src/core/web_event_factory.cpp | |
parent | 91e13af7e1056a7bad83eb34ebf63fdd45e24bea (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.cpp | 19 |
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); |