OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/gesture_text_selector.h" | 5 #include "content/browser/renderer_host/input/gesture_text_selector.h" |
6 | 6 |
7 #include "ui/events/event_constants.h" | 7 #include "ui/events/event_constants.h" |
8 #include "ui/events/gesture_detection/gesture_event_data.h" | 8 #include "ui/events/gesture_detection/gesture_event_data.h" |
9 #include "ui/events/gesture_detection/motion_event.h" | 9 #include "ui/events/gesture_detection/motion_event.h" |
10 | 10 |
(...skipping 22 matching lines...) Expand all Loading... |
33 if (!text_selection_triggered_) | 33 if (!text_selection_triggered_) |
34 return false; | 34 return false; |
35 | 35 |
36 switch (gesture.type()) { | 36 switch (gesture.type()) { |
37 case ui::ET_GESTURE_TAP: { | 37 case ui::ET_GESTURE_TAP: { |
38 client_->LongPress(gesture.time, gesture.x, gesture.y); | 38 client_->LongPress(gesture.time, gesture.x, gesture.y); |
39 break; | 39 break; |
40 } | 40 } |
41 case ui::ET_GESTURE_SCROLL_BEGIN: { | 41 case ui::ET_GESTURE_SCROLL_BEGIN: { |
42 client_->Unselect(); | 42 client_->Unselect(); |
43 // TODO(changwan): check if we can show handles on ET_GESTURE_SCROLL_END | |
44 // instead. Currently it is not possible as ShowSelectionHandles should | |
45 // be called before we change the selection. | |
46 client_->ShowSelectionHandlesAutomatically(); | |
47 anchor_x_ = gesture.x; | 43 anchor_x_ = gesture.x; |
48 anchor_y_ = gesture.y; | 44 anchor_y_ = gesture.y; |
49 break; | 45 break; |
50 } | 46 } |
51 case ui::ET_GESTURE_SCROLL_UPDATE: { | 47 case ui::ET_GESTURE_SCROLL_UPDATE: { |
| 48 // TODO(changwan): check if we can show handles on ET_GESTURE_SCROLL_END |
| 49 // instead. Currently it is not possible as ShowSelectionHandles should |
| 50 // be called before we change the selection. |
| 51 client_->ShowSelectionHandlesAutomatically(); |
52 client_->SelectRange(anchor_x_, anchor_y_, gesture.x, gesture.y); | 52 client_->SelectRange(anchor_x_, anchor_y_, gesture.x, gesture.y); |
53 break; | 53 break; |
54 } | 54 } |
55 default: | 55 default: |
56 // Suppress all other gestures when we are selecting text. | 56 // Suppress all other gestures when we are selecting text. |
57 break; | 57 break; |
58 } | 58 } |
59 return true; | 59 return true; |
60 } | 60 } |
61 | 61 |
62 // static | 62 // static |
63 bool GestureTextSelector::ShouldStartTextSelection( | 63 bool GestureTextSelector::ShouldStartTextSelection( |
64 const ui::MotionEvent& event) { | 64 const ui::MotionEvent& event) { |
65 DCHECK_GT(event.GetPointerCount(), 0u); | 65 DCHECK_GT(event.GetPointerCount(), 0u); |
66 // Currently we are supporting stylus-only cases. | 66 // Currently we are supporting stylus-only cases. |
67 const bool is_stylus = | 67 const bool is_stylus = |
68 event.GetToolType(0) == ui::MotionEvent::TOOL_TYPE_STYLUS; | 68 event.GetToolType(0) == ui::MotionEvent::TOOL_TYPE_STYLUS; |
69 const bool is_only_secondary_button_pressed = | 69 const bool is_only_secondary_button_pressed = |
70 event.GetButtonState() == ui::MotionEvent::BUTTON_SECONDARY; | 70 event.GetButtonState() == ui::MotionEvent::BUTTON_SECONDARY; |
71 return is_stylus && is_only_secondary_button_pressed; | 71 return is_stylus && is_only_secondary_button_pressed; |
72 } | 72 } |
73 | 73 |
74 } // namespace content | 74 } // namespace content |
OLD | NEW |