| Index: ui/views/controls/textfield/textfield.cc
|
| diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
|
| index cb3e5423814432168664c60ec7a6ce84ce167ebc..d0f2d6c8f31e08495c5df42d8d4e4112aef02dfd 100644
|
| --- a/ui/views/controls/textfield/textfield.cc
|
| +++ b/ui/views/controls/textfield/textfield.cc
|
| @@ -601,7 +601,7 @@ bool Textfield::OnMousePressed(const ui::MouseEvent& event) {
|
| ui::Clipboard::GetForCurrentThread(),
|
| ui::CLIPBOARD_TYPE_SELECTION).WriteText(base::string16());
|
| OnAfterUserAction();
|
| - } else if(!read_only()) {
|
| + } else if (!read_only()) {
|
| PasteSelectionClipboard(event);
|
| }
|
| }
|
| @@ -647,8 +647,14 @@ void Textfield::OnMouseReleased(const ui::MouseEvent& event) {
|
| }
|
|
|
| bool Textfield::OnKeyPressed(const ui::KeyEvent& event) {
|
| + // Since HandleKeyEvent() might destroy |this|, get a weak pointer and verify
|
| + // it isn't null before proceeding.
|
| + base::WeakPtr<Textfield> textfield(weak_ptr_factory_.GetWeakPtr());
|
| bool handled = controller_ && controller_->HandleKeyEvent(this, event);
|
|
|
| + if (!textfield)
|
| + return handled;
|
| +
|
| #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
|
| ui::TextEditKeyBindingsDelegateAuraLinux* delegate =
|
| ui::GetTextEditKeyBindingsDelegate();
|
| @@ -1588,6 +1594,8 @@ void Textfield::PaintTextAndCursor(gfx::Canvas* canvas) {
|
| // Draw the text, cursor, and selection.
|
| render_text->set_cursor_visible(cursor_visible_ && !drop_cursor_visible_ &&
|
| !HasSelection());
|
| + render_text->set_shadows(shadows_);
|
| +
|
| render_text->Draw(canvas);
|
|
|
| // Draw the detached drop cursor that marks where the text will be dropped.
|
|
|