diff options
author | Liang Qi <liang.qi@qt.io> | 2018-11-02 10:07:14 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-11-02 10:07:14 +0100 |
commit | 34b714122051eae86ac49fd95c7015fb081f79eb (patch) | |
tree | 7ba1917986e00da1df4821efe6e62f4e9bffb156 /src/core/web_event_factory.cpp | |
parent | 6e3aaa4b22892fd1fecdb9cf6c6e96296c13844a (diff) | |
parent | 8eda96bc8ae68387807e079cd557c98c4a452c4f (diff) |
Merge remote-tracking branch 'origin/5.12.0' into 5.12
Change-Id: I4dfca686e8a03e592879c456208baf3ab0025f88
Diffstat (limited to 'src/core/web_event_factory.cpp')
-rw-r--r-- | src/core/web_event_factory.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/web_event_factory.cpp b/src/core/web_event_factory.cpp index 680e1a44c..a45f7048b 100644 --- a/src/core/web_event_factory.cpp +++ b/src/core/web_event_factory.cpp @@ -1441,7 +1441,11 @@ 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); - webEvent.has_precise_scrolling_deltas = true; +#if defined(Q_OS_DARWIN) + // has_precise_scrolling_deltas is a macOS term meaning it is a system scroll gesture, see qnsview_mouse.mm + webEvent.has_precise_scrolling_deltas = (ev->source() == Qt::MouseEventSynthesizedBySystem); +#endif + setBlinkWheelEventDelta(webEvent); return webEvent; @@ -1455,6 +1459,10 @@ bool WebEventFactory::coalesceWebWheelEvent(blink::WebMouseWheelEvent &webEvent, return false; if (toBlinkPhase(ev) != webEvent.phase) return false; +#if defined(Q_OS_DARWIN) + if (webEvent.has_precise_scrolling_deltas != (ev->source() == Qt::MouseEventSynthesizedBySystem)) + return false; +#endif webEvent.SetTimeStamp(currentTimeForEvent(ev)); webEvent.SetPositionInWidget(ev->x() / dpiScale, ev->y() / dpiScale); |