Index: ui/touch_selection/touch_selection_controller.cc |
diff --git a/ui/touch_selection/touch_selection_controller.cc b/ui/touch_selection/touch_selection_controller.cc |
index 34cc30a526172079f53e9319952ca4127031b08d..3dbaaa008ecd0da64d47dcae6cf703e032b85c4c 100644 |
--- a/ui/touch_selection/touch_selection_controller.cc |
+++ b/ui/touch_selection/touch_selection_controller.cc |
@@ -389,16 +389,13 @@ void TouchSelectionController::OnInsertionChanged() { |
if (!activate_insertion_automatically_) |
return; |
- const bool was_active = active_status_ == INSERTION_ACTIVE; |
- const gfx::PointF position = GetStartPosition(); |
- if (!was_active) |
- ActivateInsertion(); |
- else |
- client_->OnSelectionEvent(INSERTION_MOVED); |
+ const bool activated = ActivateInsertionIfNecessary(); |
+ |
+ const TouchHandle::AnimationStyle animation = GetAnimationStyle(!activated); |
+ insertion_handle_->SetVisible(GetStartVisible(), animation); |
+ insertion_handle_->SetPosition(GetStartPosition()); |
- insertion_handle_->SetVisible(GetStartVisible(), |
- GetAnimationStyle(was_active)); |
- insertion_handle_->SetPosition(position); |
+ client_->OnSelectionEvent(activated ? INSERTION_SHOWN : INSERTION_MOVED); |
} |
void TouchSelectionController::OnSelectionChanged() { |
@@ -407,32 +404,31 @@ void TouchSelectionController::OnSelectionChanged() { |
if (!activate_selection_automatically_) |
return; |
- const bool was_active = active_status_ == SELECTION_ACTIVE; |
- if (!was_active || response_pending_input_event_ == LONG_PRESS) |
- ActivateSelection(); |
- else |
- client_->OnSelectionEvent(SELECTION_MOVED); |
+ const bool activated = ActivateSelectionIfNecessary(); |
- const TouchHandle::AnimationStyle animation = GetAnimationStyle(was_active); |
+ const TouchHandle::AnimationStyle animation = GetAnimationStyle(!activated); |
start_selection_handle_->SetVisible(GetStartVisible(), animation); |
end_selection_handle_->SetVisible(GetEndVisible(), animation); |
- |
start_selection_handle_->SetPosition(GetStartPosition()); |
end_selection_handle_->SetPosition(GetEndPosition()); |
+ |
+ client_->OnSelectionEvent(activated ? SELECTION_SHOWN : SELECTION_MOVED); |
} |
-void TouchSelectionController::ActivateInsertion() { |
+bool TouchSelectionController::ActivateInsertionIfNecessary() { |
DCHECK_NE(SELECTION_ACTIVE, active_status_); |
- if (!insertion_handle_) |
+ if (!insertion_handle_) { |
insertion_handle_.reset( |
new TouchHandle(this, TouchHandleOrientation::CENTER)); |
+ } |
if (active_status_ == INACTIVE) { |
active_status_ = INSERTION_ACTIVE; |
insertion_handle_->SetEnabled(true); |
- client_->OnSelectionEvent(INSERTION_SHOWN); |
+ return true; |
} |
+ return false; |
} |
void TouchSelectionController::DeactivateInsertion() { |
@@ -444,7 +440,7 @@ void TouchSelectionController::DeactivateInsertion() { |
client_->OnSelectionEvent(INSERTION_CLEARED); |
} |
-void TouchSelectionController::ActivateSelection() { |
+bool TouchSelectionController::ActivateSelectionIfNecessary() { |
DCHECK_NE(INSERTION_ACTIVE, active_status_); |
if (!start_selection_handle_) { |
@@ -474,8 +470,9 @@ void TouchSelectionController::ActivateSelection() { |
selection_handle_dragged_ = false; |
selection_start_time_ = base::TimeTicks::Now(); |
response_pending_input_event_ = INPUT_EVENT_TYPE_NONE; |
- client_->OnSelectionEvent(SELECTION_SHOWN); |
+ return true; |
} |
+ return false; |
} |
void TouchSelectionController::DeactivateSelection() { |