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

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

Issue 2569273002: Add constructors to WebInputEvents and setters so we can work at cleaning up these public structs. (Closed)
Patch Set: Rebase 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/blink/web_input_event_traits.h" 11 #include "ui/events/blink/web_input_event_traits.h"
11 12
12 using blink::WebGestureEvent; 13 using blink::WebGestureEvent;
13 using blink::WebInputEvent; 14 using blink::WebInputEvent;
14 using blink::WebMouseWheelEvent; 15 using blink::WebMouseWheelEvent;
15 using ui::LatencyInfo; 16 using ui::LatencyInfo;
16 17
17 namespace content { 18 namespace content {
18 19
19 // This class represents a single queued mouse wheel event. Its main use 20 // This class represents a single queued mouse wheel event. Its main use
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 event_sent_for_gesture_ack_->latency.AddNewLatencyFrom(latency_info); 80 event_sent_for_gesture_ack_->latency.AddNewLatencyFrom(latency_info);
80 client_->OnMouseWheelEventAck(*event_sent_for_gesture_ack_, ack_result); 81 client_->OnMouseWheelEventAck(*event_sent_for_gesture_ack_, ack_result);
81 82
82 // 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.
83 if (ack_result != INPUT_EVENT_ACK_STATE_CONSUMED && 84 if (ack_result != INPUT_EVENT_ACK_STATE_CONSUMED &&
84 ui::WebInputEventTraits::CanCauseScroll( 85 ui::WebInputEventTraits::CanCauseScroll(
85 event_sent_for_gesture_ack_->event) && 86 event_sent_for_gesture_ack_->event) &&
86 event_sent_for_gesture_ack_->event.resendingPluginId == -1 && 87 event_sent_for_gesture_ack_->event.resendingPluginId == -1 &&
87 (scrolling_device_ == blink::WebGestureDeviceUninitialized || 88 (scrolling_device_ == blink::WebGestureDeviceUninitialized ||
88 scrolling_device_ == blink::WebGestureDeviceTouchpad)) { 89 scrolling_device_ == blink::WebGestureDeviceTouchpad)) {
89 WebGestureEvent scroll_update; 90 WebGestureEvent scroll_update(
90 scroll_update.timeStampSeconds = 91 WebInputEvent::GestureScrollUpdate, WebInputEvent::NoModifiers,
91 event_sent_for_gesture_ack_->event.timeStampSeconds; 92 event_sent_for_gesture_ack_->event.timeStampSeconds);
92 93
93 scroll_update.x = event_sent_for_gesture_ack_->event.x; 94 scroll_update.x = event_sent_for_gesture_ack_->event.x;
94 scroll_update.y = event_sent_for_gesture_ack_->event.y; 95 scroll_update.y = event_sent_for_gesture_ack_->event.y;
95 scroll_update.globalX = event_sent_for_gesture_ack_->event.globalX; 96 scroll_update.globalX = event_sent_for_gesture_ack_->event.globalX;
96 scroll_update.globalY = event_sent_for_gesture_ack_->event.globalY; 97 scroll_update.globalY = event_sent_for_gesture_ack_->event.globalY;
97 scroll_update.type = WebInputEvent::GestureScrollUpdate;
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 =
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 wheel_queue_.pop_front(); 293 wheel_queue_.pop_front();
294 294
295 client_->SendMouseWheelEventImmediately(*event_sent_for_gesture_ack_); 295 client_->SendMouseWheelEventImmediately(*event_sent_for_gesture_ack_);
296 } 296 }
297 297
298 void MouseWheelEventQueue::SendScrollEnd(WebGestureEvent update_event, 298 void MouseWheelEventQueue::SendScrollEnd(WebGestureEvent update_event,
299 bool synthetic) { 299 bool synthetic) {
300 DCHECK((synthetic && !needs_scroll_end_) || needs_scroll_end_); 300 DCHECK((synthetic && !needs_scroll_end_) || needs_scroll_end_);
301 301
302 WebGestureEvent scroll_end(update_event); 302 WebGestureEvent scroll_end(update_event);
303 scroll_end.timeStampSeconds = 303 scroll_end.setTimeStampSeconds(
304 (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF(); 304 ui::EventTimeStampToSeconds(ui::EventTimeForNow()));
305 scroll_end.type = WebInputEvent::GestureScrollEnd; 305 scroll_end.setType(WebInputEvent::GestureScrollEnd);
306 scroll_end.resendingPluginId = -1; 306 scroll_end.resendingPluginId = -1;
307 scroll_end.data.scrollEnd.synthetic = synthetic; 307 scroll_end.data.scrollEnd.synthetic = synthetic;
308 scroll_end.data.scrollEnd.inertialPhase = 308 scroll_end.data.scrollEnd.inertialPhase =
309 update_event.data.scrollUpdate.inertialPhase; 309 update_event.data.scrollUpdate.inertialPhase;
310 scroll_end.data.scrollEnd.deltaUnits = 310 scroll_end.data.scrollEnd.deltaUnits =
311 update_event.data.scrollUpdate.deltaUnits; 311 update_event.data.scrollUpdate.deltaUnits;
312 312
313 if (!synthetic) { 313 if (!synthetic) {
314 needs_scroll_begin_ = true; 314 needs_scroll_begin_ = true;
315 needs_scroll_end_ = false; 315 needs_scroll_end_ = false;
316 316
317 if (scroll_end_timer_.IsRunning()) 317 if (scroll_end_timer_.IsRunning())
318 scroll_end_timer_.Reset(); 318 scroll_end_timer_.Reset();
319 } 319 }
320 client_->ForwardGestureEventWithLatencyInfo( 320 client_->ForwardGestureEventWithLatencyInfo(
321 scroll_end, ui::LatencyInfo(ui::SourceEventType::WHEEL)); 321 scroll_end, ui::LatencyInfo(ui::SourceEventType::WHEEL));
322 } 322 }
323 323
324 void MouseWheelEventQueue::SendScrollBegin( 324 void MouseWheelEventQueue::SendScrollBegin(
325 const WebGestureEvent& gesture_update, 325 const WebGestureEvent& gesture_update,
326 bool synthetic) { 326 bool synthetic) {
327 DCHECK((synthetic && !needs_scroll_begin_) || needs_scroll_begin_); 327 DCHECK((synthetic && !needs_scroll_begin_) || needs_scroll_begin_);
328 328
329 WebGestureEvent scroll_begin(gesture_update); 329 WebGestureEvent scroll_begin(gesture_update);
330 scroll_begin.type = WebInputEvent::GestureScrollBegin; 330 scroll_begin.setType(WebInputEvent::GestureScrollBegin);
331 scroll_begin.data.scrollBegin.synthetic = synthetic; 331 scroll_begin.data.scrollBegin.synthetic = synthetic;
332 scroll_begin.data.scrollBegin.inertialPhase = 332 scroll_begin.data.scrollBegin.inertialPhase =
333 gesture_update.data.scrollUpdate.inertialPhase; 333 gesture_update.data.scrollUpdate.inertialPhase;
334 scroll_begin.data.scrollBegin.deltaXHint = 334 scroll_begin.data.scrollBegin.deltaXHint =
335 gesture_update.data.scrollUpdate.deltaX; 335 gesture_update.data.scrollUpdate.deltaX;
336 scroll_begin.data.scrollBegin.deltaYHint = 336 scroll_begin.data.scrollBegin.deltaYHint =
337 gesture_update.data.scrollUpdate.deltaY; 337 gesture_update.data.scrollUpdate.deltaY;
338 scroll_begin.data.scrollBegin.targetViewport = false; 338 scroll_begin.data.scrollBegin.targetViewport = false;
339 scroll_begin.data.scrollBegin.deltaHintUnits = 339 scroll_begin.data.scrollBegin.deltaHintUnits =
340 gesture_update.data.scrollUpdate.deltaUnits; 340 gesture_update.data.scrollUpdate.deltaUnits;
341 341
342 needs_scroll_begin_ = false; 342 needs_scroll_begin_ = false;
343 needs_scroll_end_ = true; 343 needs_scroll_end_ = true;
344 client_->ForwardGestureEventWithLatencyInfo( 344 client_->ForwardGestureEventWithLatencyInfo(
345 scroll_begin, ui::LatencyInfo(ui::SourceEventType::WHEEL)); 345 scroll_begin, ui::LatencyInfo(ui::SourceEventType::WHEEL));
346 } 346 }
347 347
348 } // namespace content 348 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698