Chromium Code Reviews| 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_); |
| + |
|
flackr
2014/06/27 20:00:07
nit: no need for an extra newline here.
|
| render_text->Draw(canvas); |
| // Draw the detached drop cursor that marks where the text will be dropped. |