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

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

Issue 165143003: Handle Ctrl+Mousewheel after renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disable Ctrl+wheel checks on Mac Created 6 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
« no previous file with comments | « no previous file | content/browser/renderer_host/render_widget_host_delegate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/input_router_impl.h" 5 #include "content/browser/renderer_host/input/input_router_impl.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after
417 ProcessInputEventAck(input_event.type, 417 ProcessInputEventAck(input_event.type,
418 INPUT_EVENT_ACK_STATE_IGNORED, 418 INPUT_EVENT_ACK_STATE_IGNORED,
419 latency_info, 419 latency_info,
420 IGNORING_DISPOSITION); 420 IGNORING_DISPOSITION);
421 } 421 }
422 } 422 }
423 423
424 bool InputRouterImpl::OfferToOverscrollController( 424 bool InputRouterImpl::OfferToOverscrollController(
425 const WebInputEvent& input_event, 425 const WebInputEvent& input_event,
426 const ui::LatencyInfo& latency_info) { 426 const ui::LatencyInfo& latency_info) {
427 #if !defined(OS_MACOSX)
428 // Ctrl + mousewheel is reserved for zooming on every platform except for Mac.
429 if (input_event.type == WebInputEvent::MouseWheel &&
430 input_event.modifiers & WebInputEvent::ControlKey)
431 return false;
432 #endif
433
427 OverscrollController* controller = client_->GetOverscrollController(); 434 OverscrollController* controller = client_->GetOverscrollController();
428 if (!controller) 435 if (!controller)
429 return false; 436 return false;
430 437
431 OverscrollController::Disposition disposition = 438 OverscrollController::Disposition disposition =
432 controller->DispatchEvent(input_event, latency_info); 439 controller->DispatchEvent(input_event, latency_info);
433 440
434 bool consumed = disposition == OverscrollController::CONSUMED; 441 bool consumed = disposition == OverscrollController::CONSUMED;
435 442
436 if (disposition == OverscrollController::SHOULD_FORWARD_TO_GESTURE_QUEUE) { 443 if (disposition == OverscrollController::SHOULD_FORWARD_TO_GESTURE_QUEUE) {
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 if (next_mouse_move_) { 630 if (next_mouse_move_) {
624 DCHECK(next_mouse_move_->event.type == WebInputEvent::MouseMove); 631 DCHECK(next_mouse_move_->event.type == WebInputEvent::MouseMove);
625 scoped_ptr<MouseEventWithLatencyInfo> next_mouse_move 632 scoped_ptr<MouseEventWithLatencyInfo> next_mouse_move
626 = next_mouse_move_.Pass(); 633 = next_mouse_move_.Pass();
627 SendMouseEvent(*next_mouse_move); 634 SendMouseEvent(*next_mouse_move);
628 } 635 }
629 } 636 }
630 637
631 void InputRouterImpl::ProcessWheelAck(InputEventAckState ack_result, 638 void InputRouterImpl::ProcessWheelAck(InputEventAckState ack_result,
632 const ui::LatencyInfo& latency) { 639 const ui::LatencyInfo& latency) {
640 #if defined(OS_MACOSX)
633 ProcessAckForOverscroll(current_wheel_event_.event, ack_result); 641 ProcessAckForOverscroll(current_wheel_event_.event, ack_result);
642 #else
643 // Ctrl + mousewheel is reserved for zooming on every platform except for Mac.
644 if (!(current_wheel_event_.event.modifiers & WebInputEvent::ControlKey)) {
645 ProcessAckForOverscroll(current_wheel_event_.event, ack_result);
646 }
647 #endif
634 648
635 // TODO(miletus): Add renderer side latency to each uncoalesced mouse 649 // TODO(miletus): Add renderer side latency to each uncoalesced mouse
636 // wheel event and add terminal component to each of them. 650 // wheel event and add terminal component to each of them.
637 current_wheel_event_.latency.AddNewLatencyFrom(latency); 651 current_wheel_event_.latency.AddNewLatencyFrom(latency);
638 // Process the unhandled wheel event here before calling SendWheelEvent() 652 // Process the unhandled wheel event here before calling SendWheelEvent()
639 // since it will mutate current_wheel_event_. 653 // since it will mutate current_wheel_event_.
640 ack_handler_->OnWheelEventAck(current_wheel_event_, ack_result); 654 ack_handler_->OnWheelEventAck(current_wheel_event_, ack_result);
641 mouse_wheel_pending_ = false; 655 mouse_wheel_pending_ = false;
642 656
643 // Now send the next (coalesced) mouse wheel event. 657 // Now send the next (coalesced) mouse wheel event.
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 break; 778 break;
765 } 779 }
766 } 780 }
767 781
768 bool InputRouterImpl::IsInOverscrollGesture() const { 782 bool InputRouterImpl::IsInOverscrollGesture() const {
769 OverscrollController* controller = client_->GetOverscrollController(); 783 OverscrollController* controller = client_->GetOverscrollController();
770 return controller && controller->overscroll_mode() != OVERSCROLL_NONE; 784 return controller && controller->overscroll_mode() != OVERSCROLL_NONE;
771 } 785 }
772 786
773 } // namespace content 787 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/browser/renderer_host/render_widget_host_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698