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

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: Created 4 years 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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 } 214 }
215 } 215 }
216 } 216 }
217 217
218 event_sent_for_gesture_ack_.reset(); 218 event_sent_for_gesture_ack_.reset();
219 TryForwardNextEventToRenderer(); 219 TryForwardNextEventToRenderer();
220 } 220 }
221 221
222 void MouseWheelEventQueue::OnGestureScrollEvent( 222 void MouseWheelEventQueue::OnGestureScrollEvent(
223 const GestureEventWithLatencyInfo& gesture_event) { 223 const GestureEventWithLatencyInfo& gesture_event) {
224 if (gesture_event.event.type == blink::WebInputEvent::GestureScrollBegin) { 224 if (gesture_event.event.type() == blink::WebInputEvent::GestureScrollBegin) {
225 // If there is a current scroll going on and a new scroll that isn't 225 // If there is a current scroll going on and a new scroll that isn't
226 // wheel based cancel current one by sending a ScrollEnd. 226 // wheel based cancel current one by sending a ScrollEnd.
227 if (scroll_end_timer_.IsRunning() && 227 if (scroll_end_timer_.IsRunning() &&
228 gesture_event.event.sourceDevice != blink::WebGestureDeviceTouchpad) { 228 gesture_event.event.sourceDevice != blink::WebGestureDeviceTouchpad) {
229 base::Closure task = scroll_end_timer_.user_task(); 229 base::Closure task = scroll_end_timer_.user_task();
230 scroll_end_timer_.Reset(); 230 scroll_end_timer_.Reset();
231 task.Run(); 231 task.Run();
232 } 232 }
233 scrolling_device_ = gesture_event.event.sourceDevice; 233 scrolling_device_ = gesture_event.event.sourceDevice;
234 } else if (scrolling_device_ == gesture_event.event.sourceDevice && 234 } else if (scrolling_device_ == gesture_event.event.sourceDevice &&
235 (gesture_event.event.type == 235 (gesture_event.event.type() ==
236 blink::WebInputEvent::GestureScrollEnd || 236 blink::WebInputEvent::GestureScrollEnd ||
237 gesture_event.event.type == 237 gesture_event.event.type() ==
238 blink::WebInputEvent::GestureFlingStart)) { 238 blink::WebInputEvent::GestureFlingStart)) {
239 scrolling_device_ = blink::WebGestureDeviceUninitialized; 239 scrolling_device_ = blink::WebGestureDeviceUninitialized;
240 if (scroll_end_timer_.IsRunning()) 240 if (scroll_end_timer_.IsRunning())
241 scroll_end_timer_.Reset(); 241 scroll_end_timer_.Reset();
242 } 242 }
243 } 243 }
244 244
245 void MouseWheelEventQueue::TryForwardNextEventToRenderer() { 245 void MouseWheelEventQueue::TryForwardNextEventToRenderer() {
246 TRACE_EVENT0("input", "MouseWheelEventQueue::TryForwardNextEventToRenderer"); 246 TRACE_EVENT0("input", "MouseWheelEventQueue::TryForwardNextEventToRenderer");
247 247
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 scroll_begin.data.scrollBegin.deltaHintUnits = 298 scroll_begin.data.scrollBegin.deltaHintUnits =
299 gesture_update.data.scrollUpdate.deltaUnits; 299 gesture_update.data.scrollUpdate.deltaUnits;
300 300
301 needs_scroll_begin_ = false; 301 needs_scroll_begin_ = false;
302 needs_scroll_end_ = true; 302 needs_scroll_end_ = true;
303 client_->ForwardGestureEventWithLatencyInfo( 303 client_->ForwardGestureEventWithLatencyInfo(
304 scroll_begin, ui::LatencyInfo(ui::SourceEventType::WHEEL)); 304 scroll_begin, ui::LatencyInfo(ui::SourceEventType::WHEEL));
305 } 305 }
306 306
307 } // namespace content 307 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698