| Index: chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
|
| diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
|
| index 9ca8a6be54110823de56ea716d01cfdbb213fa7d..69a1b4ee32dd4578503bcc95eef4d7763fa2c325 100644
|
| --- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
|
| +++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
|
| @@ -630,6 +630,25 @@ bool AutocompleteEditViewMac::OnTabPressed() {
|
| return false;
|
| }
|
|
|
| +bool AutocompleteEditViewMac::OnBackspacePressed() {
|
| + // Don't intercept if not in keyword search mode.
|
| + if (model_->is_keyword_hint() || model_->keyword().empty()) {
|
| + return false;
|
| + }
|
| +
|
| + // Don't intercept if there is a selection, or the cursor isn't at
|
| + // the leftmost position.
|
| + const NSRange selection = GetSelectedRange();
|
| + if (selection.length > 0 || selection.location > 0) {
|
| + return false;
|
| + }
|
| +
|
| + // We're showing a keyword and the user pressed backspace at the
|
| + // beginning of the text. Delete the selected keyword.
|
| + model_->ClearKeyword(GetText());
|
| + return true;
|
| +}
|
| +
|
| bool AutocompleteEditViewMac::IsPopupOpen() const {
|
| return popup_view_->IsOpen();
|
| }
|
| @@ -757,6 +776,12 @@ std::wstring AutocompleteEditViewMac::GetClipboardText(Clipboard* clipboard) {
|
| return YES;
|
| }
|
|
|
| + if (cmd == @selector(deleteBackward:)) {
|
| + if (edit_view_->OnBackspacePressed()) {
|
| + return YES;
|
| + }
|
| + }
|
| +
|
| // Capture the state before the operation changes the content.
|
| // TODO(shess): Determine if this is always redundent WRT the call
|
| // in -controlTextDidChange:.
|
|
|