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

Side by Side Diff: content/browser/renderer_host/input/mouse_wheel_event_queue.cc

Issue 2573073003: Collapse the API surface on WebInputEvent via accessor functions. (Closed)
Patch Set: Fix nits Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h" 5 #include "content/browser/renderer_host/input/mouse_wheel_event_queue.h"
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 #include "ui/events/base_event_utils.h" 10 #include "ui/events/base_event_utils.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 // If event wasn't consumed then generate a gesture scroll for it. 83 // If event wasn't consumed then generate a gesture scroll for it.
84 if (ack_result != INPUT_EVENT_ACK_STATE_CONSUMED && 84 if (ack_result != INPUT_EVENT_ACK_STATE_CONSUMED &&
85 ui::WebInputEventTraits::CanCauseScroll( 85 ui::WebInputEventTraits::CanCauseScroll(
86 event_sent_for_gesture_ack_->event) && 86 event_sent_for_gesture_ack_->event) &&
87 event_sent_for_gesture_ack_->event.resendingPluginId == -1 && 87 event_sent_for_gesture_ack_->event.resendingPluginId == -1 &&
88 (scrolling_device_ == blink::WebGestureDeviceUninitialized || 88 (scrolling_device_ == blink::WebGestureDeviceUninitialized ||
89 scrolling_device_ == blink::WebGestureDeviceTouchpad)) { 89 scrolling_device_ == blink::WebGestureDeviceTouchpad)) {
90 WebGestureEvent scroll_update( 90 WebGestureEvent scroll_update(
91 WebInputEvent::GestureScrollUpdate, WebInputEvent::NoModifiers, 91 WebInputEvent::GestureScrollUpdate, WebInputEvent::NoModifiers,
92 event_sent_for_gesture_ack_->event.timeStampSeconds); 92 event_sent_for_gesture_ack_->event.timeStampSeconds());
93 93
94 scroll_update.x = event_sent_for_gesture_ack_->event.x; 94 scroll_update.x = event_sent_for_gesture_ack_->event.x;
95 scroll_update.y = event_sent_for_gesture_ack_->event.y; 95 scroll_update.y = event_sent_for_gesture_ack_->event.y;
96 scroll_update.globalX = event_sent_for_gesture_ack_->event.globalX; 96 scroll_update.globalX = event_sent_for_gesture_ack_->event.globalX;
97 scroll_update.globalY = event_sent_for_gesture_ack_->event.globalY; 97 scroll_update.globalY = event_sent_for_gesture_ack_->event.globalY;
98 scroll_update.sourceDevice = blink::WebGestureDeviceTouchpad; 98 scroll_update.sourceDevice = blink::WebGestureDeviceTouchpad;
99 scroll_update.resendingPluginId = -1; 99 scroll_update.resendingPluginId = -1;
100 100
101 // Swap X & Y if Shift is down and when there is no horizontal movement. 101 // Swap X & Y if Shift is down and when there is no horizontal movement.
102 if ((event_sent_for_gesture_ack_->event.modifiers & 102 if ((event_sent_for_gesture_ack_->event.modifiers() &
103 WebInputEvent::ShiftKey) != 0 && 103 WebInputEvent::ShiftKey) != 0 &&
104 event_sent_for_gesture_ack_->event.deltaX == 0) { 104 event_sent_for_gesture_ack_->event.deltaX == 0) {
105 scroll_update.data.scrollUpdate.deltaX = 105 scroll_update.data.scrollUpdate.deltaX =
106 event_sent_for_gesture_ack_->event.deltaY; 106 event_sent_for_gesture_ack_->event.deltaY;
107 scroll_update.data.scrollUpdate.deltaY = 107 scroll_update.data.scrollUpdate.deltaY =
108 event_sent_for_gesture_ack_->event.deltaX; 108 event_sent_for_gesture_ack_->event.deltaX;
109 } else { 109 } else {
110 scroll_update.data.scrollUpdate.deltaX = 110 scroll_update.data.scrollUpdate.deltaX =
111 event_sent_for_gesture_ack_->event.deltaX; 111 event_sent_for_gesture_ack_->event.deltaX;
112 scroll_update.data.scrollUpdate.deltaY = 112 scroll_update.data.scrollUpdate.deltaY =
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 } 255 }
256 } 256 }
257 } 257 }
258 258
259 event_sent_for_gesture_ack_.reset(); 259 event_sent_for_gesture_ack_.reset();
260 TryForwardNextEventToRenderer(); 260 TryForwardNextEventToRenderer();
261 } 261 }
262 262
263 void MouseWheelEventQueue::OnGestureScrollEvent( 263 void MouseWheelEventQueue::OnGestureScrollEvent(
264 const GestureEventWithLatencyInfo& gesture_event) { 264 const GestureEventWithLatencyInfo& gesture_event) {
265 if (gesture_event.event.type == blink::WebInputEvent::GestureScrollBegin) { 265 if (gesture_event.event.type() == blink::WebInputEvent::GestureScrollBegin) {
266 // If there is a current scroll going on and a new scroll that isn't 266 // If there is a current scroll going on and a new scroll that isn't
267 // wheel based cancel current one by sending a ScrollEnd. 267 // wheel based cancel current one by sending a ScrollEnd.
268 if (scroll_end_timer_.IsRunning() && 268 if (scroll_end_timer_.IsRunning() &&
269 gesture_event.event.sourceDevice != blink::WebGestureDeviceTouchpad) { 269 gesture_event.event.sourceDevice != blink::WebGestureDeviceTouchpad) {
270 base::Closure task = scroll_end_timer_.user_task(); 270 base::Closure task = scroll_end_timer_.user_task();
271 scroll_end_timer_.Reset(); 271 scroll_end_timer_.Reset();
272 task.Run(); 272 task.Run();
273 } 273 }
274 scrolling_device_ = gesture_event.event.sourceDevice; 274 scrolling_device_ = gesture_event.event.sourceDevice;
275 } else if (scrolling_device_ == gesture_event.event.sourceDevice && 275 } else if (scrolling_device_ == gesture_event.event.sourceDevice &&
276 (gesture_event.event.type == 276 (gesture_event.event.type() ==
277 blink::WebInputEvent::GestureScrollEnd || 277 blink::WebInputEvent::GestureScrollEnd ||
278 gesture_event.event.type == 278 gesture_event.event.type() ==
279 blink::WebInputEvent::GestureFlingStart)) { 279 blink::WebInputEvent::GestureFlingStart)) {
280 scrolling_device_ = blink::WebGestureDeviceUninitialized; 280 scrolling_device_ = blink::WebGestureDeviceUninitialized;
281 if (scroll_end_timer_.IsRunning()) { 281 if (scroll_end_timer_.IsRunning()) {
282 if (enable_scroll_latching_) { 282 if (enable_scroll_latching_) {
283 // Don't send the pending ScrollEnd if a fling is happening. 283 // Don't send the pending ScrollEnd if a fling is happening.
284 // The next wheel event will still need a ScrollBegin. 284 // The next wheel event will still need a ScrollBegin.
285 scroll_end_timer_.Stop(); 285 scroll_end_timer_.Stop();
286 needs_scroll_begin_ = true; 286 needs_scroll_begin_ = true;
287 needs_scroll_end_ = false; 287 needs_scroll_end_ = false;
288 } else { 288 } else {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 scroll_begin.data.scrollBegin.deltaHintUnits = 348 scroll_begin.data.scrollBegin.deltaHintUnits =
349 gesture_update.data.scrollUpdate.deltaUnits; 349 gesture_update.data.scrollUpdate.deltaUnits;
350 350
351 needs_scroll_begin_ = false; 351 needs_scroll_begin_ = false;
352 needs_scroll_end_ = true; 352 needs_scroll_end_ = true;
353 client_->ForwardGestureEventWithLatencyInfo( 353 client_->ForwardGestureEventWithLatencyInfo(
354 scroll_begin, ui::LatencyInfo(ui::SourceEventType::WHEEL)); 354 scroll_begin, ui::LatencyInfo(ui::SourceEventType::WHEEL));
355 } 355 }
356 356
357 } // namespace content 357 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698