Index: ui/views/controls/textfield/textfield.cc |
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc |
index 93cc7b3c6eb95e988e0791d48682cb3f0df43035..c754fbf3256c5bc9250c7288204c912a6dd44cfd 100644 |
--- a/ui/views/controls/textfield/textfield.cc |
+++ b/ui/views/controls/textfield/textfield.cc |
@@ -336,7 +336,7 @@ void Textfield::OnPaint(gfx::Canvas* canvas) { |
bool Textfield::OnKeyPressed(const ui::KeyEvent& event) { |
bool handled = controller_ && controller_->HandleKeyEvent(this, event); |
- touch_selection_controller_.reset(); |
+ SetTouchSelectionController(NULL); |
if (handled) |
return true; |
@@ -498,7 +498,7 @@ bool Textfield::OnMousePressed(const ui::MouseEvent& event) { |
} |
OnAfterUserAction(); |
- touch_selection_controller_.reset(); |
+ SetTouchSelectionController(NULL); |
return true; |
} |
@@ -568,7 +568,7 @@ void Textfield::OnBlur() { |
RepaintCursor(); |
} |
- touch_selection_controller_.reset(); |
+ SetTouchSelectionController(NULL); |
// Border typically draws focus indicator. |
SchedulePaint(); |
@@ -680,8 +680,7 @@ void Textfield::OnGestureEvent(ui::GestureEvent* event) { |
if (!GetRenderText()->IsPointInSelection(event->location())) { |
OnBeforeUserAction(); |
model_->SelectWord(); |
- touch_selection_controller_.reset( |
- ui::TouchSelectionController::create(this)); |
+ SetTouchSelectionController(ui::TouchSelectionController::create(this)); |
OnCaretBoundsChanged(); |
SchedulePaint(); |
OnAfterUserAction(); |
@@ -689,7 +688,7 @@ void Textfield::OnGestureEvent(ui::GestureEvent* event) { |
event->SetHandled(); |
} else if (switches::IsTouchDragDropEnabled()) { |
initiating_drag_ = true; |
- touch_selection_controller_.reset(); |
+ SetTouchSelectionController(NULL); |
} else { |
if (!touch_selection_controller_) |
CreateTouchSelectionControllerAndNotifyIt(); |
@@ -932,7 +931,7 @@ bool Textfield::DrawsHandles() { |
} |
void Textfield::OpenContextMenu(const gfx::Point& anchor) { |
- touch_selection_controller_.reset(); |
+ SetTouchSelectionController(NULL); |
ShowContextMenu(anchor, ui::MENU_SOURCE_TOUCH_EDIT_MENU); |
} |
@@ -973,7 +972,7 @@ bool Textfield::GetAcceleratorForCommandId(int command_id, |
} |
void Textfield::ExecuteCommand(int command_id, int event_flags) { |
- touch_selection_controller_.reset(); |
+ SetTouchSelectionController(NULL); |
if (!IsCommandIdEnabled(command_id)) |
return; |
@@ -1462,12 +1461,16 @@ void Textfield::RevealPasswordChar(int index) { |
} |
void Textfield::CreateTouchSelectionControllerAndNotifyIt() { |
- if (!touch_selection_controller_) { |
- touch_selection_controller_.reset( |
- ui::TouchSelectionController::create(this)); |
- } |
+ if (!touch_selection_controller_) |
+ SetTouchSelectionController(ui::TouchSelectionController::create(this)); |
if (touch_selection_controller_) |
touch_selection_controller_->SelectionChanged(); |
} |
+void Textfield::SetTouchSelectionController(ui::TouchSelectionController* tsc) { |
+ if (touch_selection_controller_) |
+ touch_selection_controller_->HideHandles(false); |
+ touch_selection_controller_.reset(tsc); |
sky
2014/01/16 23:15:02
Can the destructor imply HideHandles(false) so tha
mohsen
2014/01/17 02:09:41
Yep! Done.
Now, handles fade out in their destruct
|
+} |
+ |
} // namespace views |