summaryrefslogtreecommitdiffstats
path: root/chrome/views/controls/text_field.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/views/controls/text_field.cc')
-rw-r--r--chrome/views/controls/text_field.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/chrome/views/controls/text_field.cc b/chrome/views/controls/text_field.cc
index a83c1c0..5114d83c 100644
--- a/chrome/views/controls/text_field.cc
+++ b/chrome/views/controls/text_field.cc
@@ -805,13 +805,19 @@ void TextField::Edit::HandleKeystroke(UINT message,
UINT repeat_count,
UINT flags) {
ScopedFreeze freeze(this, GetTextObjectModel());
- OnBeforePossibleChange();
- DefWindowProc(message, key, MAKELPARAM(repeat_count, flags));
- OnAfterPossibleChange();
TextField::Controller* controller = parent_->GetController();
- if (controller)
- controller->HandleKeystroke(parent_, message, key, repeat_count, flags);
+ bool handled = false;
+ if (controller) {
+ handled =
+ controller->HandleKeystroke(parent_, message, key, repeat_count, flags);
+ }
+
+ if (!handled) {
+ OnBeforePossibleChange();
+ DefWindowProc(message, key, MAKELPARAM(repeat_count, flags));
+ OnAfterPossibleChange();
+ }
}
void TextField::Edit::OnBeforePossibleChange() {