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

Side by Side Diff: content/renderer/input/render_widget_input_handler.cc

Issue 1749343004: Implement Wheel Gesture Scrolling on OSX. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix non mac builds Created 4 years, 9 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/renderer/input/render_widget_input_handler.h" 5 #include "content/renderer/input/render_widget_input_handler.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 delegate_->HasTouchEventHandlersAt( 360 delegate_->HasTouchEventHandlersAt(
361 gfx::ToFlooredPoint(touch_event.touches[i].position))) { 361 gfx::ToFlooredPoint(touch_event.touches[i].position))) {
362 ack_result = INPUT_EVENT_ACK_STATE_NOT_CONSUMED; 362 ack_result = INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
363 break; 363 break;
364 } 364 }
365 } 365 }
366 } 366 }
367 367
368 // Send mouse wheel events and their disposition to the compositor thread, so 368 // Send mouse wheel events and their disposition to the compositor thread, so
369 // that they can be used to produce the elastic overscroll effect on Mac. 369 // that they can be used to produce the elastic overscroll effect on Mac.
370 if (input_event.type == WebInputEvent::MouseWheel) { 370 if (input_event.type == WebInputEvent::MouseWheel) {
tdresser 2016/03/02 18:26:53 We should make sure that removing all the wheel sp
dtapuska 2016/03/07 18:03:59 Acknowledged.
371 const WebMouseWheelEvent& wheel_event = 371 const WebMouseWheelEvent& wheel_event =
372 static_cast<const WebMouseWheelEvent&>(input_event); 372 static_cast<const WebMouseWheelEvent&>(input_event);
373 if (wheel_event.canScroll) { 373 if (wheel_event.canScroll) {
374 delegate_->ObserveWheelEventAndResult( 374 delegate_->ObserveWheelEventAndResult(
375 wheel_event, 375 wheel_event,
376 event_overscroll ? event_overscroll->latest_overscroll_delta 376 event_overscroll ? event_overscroll->latest_overscroll_delta
377 : gfx::Vector2dF(), 377 : gfx::Vector2dF(),
378 processed != WebInputEventResult::NotHandled); 378 processed != WebInputEventResult::NotHandled);
379 } 379 }
380 } else if (input_event.type == WebInputEvent::GestureScrollBegin ||
381 input_event.type == WebInputEvent::GestureScrollEnd ||
382 input_event.type == WebInputEvent::GestureScrollUpdate) {
383 const WebGestureEvent& gesture_event =
384 static_cast<const WebGestureEvent&>(input_event);
385 if (gesture_event.sourceDevice == blink::WebGestureDeviceTouchpad) {
386 delegate_->ObserveGestureEventAndResult(
387 gesture_event,
388 event_overscroll ? event_overscroll->latest_overscroll_delta
389 : gfx::Vector2dF(),
390 processed != WebInputEventResult::NotHandled);
391 }
380 } 392 }
381 393
382 bool frame_pending = 394 bool frame_pending =
383 widget_->compositor() && widget_->compositor()->BeginMainFrameRequested(); 395 widget_->compositor() && widget_->compositor()->BeginMainFrameRequested();
384 396
385 // If we don't have a fast and accurate Now(), we assume the input handlers 397 // If we don't have a fast and accurate Now(), we assume the input handlers
386 // are heavy and rate limit them. 398 // are heavy and rate limit them.
387 bool rate_limiting_wanted = input_event.type == WebInputEvent::MouseMove || 399 bool rate_limiting_wanted = input_event.type == WebInputEvent::MouseMove ||
388 input_event.type == WebInputEvent::MouseWheel; 400 input_event.type == WebInputEvent::MouseWheel;
389 if (rate_limiting_wanted && !start_time.is_null()) { 401 if (rate_limiting_wanted && !start_time.is_null()) {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 if (pending_input_event_ack_) { 539 if (pending_input_event_ack_) {
528 TRACE_EVENT_ASYNC_END0("input", 540 TRACE_EVENT_ASYNC_END0("input",
529 "RenderWidgetInputHandler::ThrottledInputEventAck", 541 "RenderWidgetInputHandler::ThrottledInputEventAck",
530 pending_input_event_ack_.get()); 542 pending_input_event_ack_.get());
531 delegate_->OnInputEventAck(std::move(pending_input_event_ack_)); 543 delegate_->OnInputEventAck(std::move(pending_input_event_ack_));
532 } 544 }
533 total_input_handling_time_this_frame_ = base::TimeDelta(); 545 total_input_handling_time_this_frame_ = base::TimeDelta();
534 } 546 }
535 547
536 } // namespace content 548 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698