Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(742)

Unified Diff: ui/events/blink/blink_event_util.cc

Issue 2605193002: Fix mouse wheel over-scrolls when display is scaled and scroll is paginated (Closed)
Patch Set: Not scale paginated mouse scroll with the display scale factor at the beginning. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/events/blink/blink_event_util.cc
diff --git a/ui/events/blink/blink_event_util.cc b/ui/events/blink/blink_event_util.cc
index 6378ce21ff9968ecc7e1652a547c9d451f982fbf..4143e078ba2f9f3c6a4909430f0a07d2af862f32 100644
--- a/ui/events/blink/blink_event_util.cc
+++ b/ui/events/blink/blink_event_util.cc
@@ -750,8 +750,10 @@ std::unique_ptr<blink::WebInputEvent> TranslateAndScaleWebInputEvent(
wheel_event->y += delta.y();
wheel_event->x *= scale;
wheel_event->y *= scale;
- wheel_event->deltaX *= scale;
- wheel_event->deltaY *= scale;
+ if (!wheel_event->scrollByPage) {
+ wheel_event->deltaX *= scale;
+ wheel_event->deltaY *= scale;
+ }
wheel_event->wheelTicksX *= scale;
aelias_OOO_until_Jul13 2017/02/16 22:11:13 I think wheel tick count should be within the if b
chengx 2017/02/17 08:26:02 Done.
wheel_event->wheelTicksY *= scale;
} else if (blink::WebInputEvent::isMouseEventType(event.type())) {
@@ -788,12 +790,18 @@ std::unique_ptr<blink::WebInputEvent> TranslateAndScaleWebInputEvent(
gesture_event->y *= scale;
switch (gesture_event->type()) {
case blink::WebInputEvent::GestureScrollUpdate:
- gesture_event->data.scrollUpdate.deltaX *= scale;
- gesture_event->data.scrollUpdate.deltaY *= scale;
+ if (gesture_event->data.scrollUpdate.deltaUnits !=
+ blink::WebGestureEvent::ScrollUnits::Page) {
+ gesture_event->data.scrollUpdate.deltaX *= scale;
+ gesture_event->data.scrollUpdate.deltaY *= scale;
+ }
break;
case blink::WebInputEvent::GestureScrollBegin:
- gesture_event->data.scrollBegin.deltaXHint *= scale;
- gesture_event->data.scrollBegin.deltaYHint *= scale;
+ if (gesture_event->data.scrollBegin.deltaHintUnits !=
+ blink::WebGestureEvent::ScrollUnits::Page) {
+ gesture_event->data.scrollBegin.deltaXHint *= scale;
+ gesture_event->data.scrollBegin.deltaYHint *= scale;
+ }
break;
case blink::WebInputEvent::GesturePinchUpdate:

Powered by Google App Engine
This is Rietveld 408576698