From a763b93742b0e753447be079ce5d097f2a7c2d68 Mon Sep 17 00:00:00 2001 From: "shess@chromium.org" Date: Wed, 22 Jul 2009 19:52:04 +0000 Subject: [Mac] Don't handle up/down-arrow unless popup is visible. http://crbug.com/17013 TEST=Browse to www.google.com. Click in the field. Up-arrow should go to beginning of line, down-arrow to end. Review URL: http://codereview.chromium.org/155871 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21310 0039d316-1c4b-4281-b951-d872f2087c98 --- .../autocomplete/autocomplete_edit_view_mac.h | 3 +++ .../autocomplete/autocomplete_edit_view_mac.mm | 23 ++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) (limited to 'chrome') diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h b/chrome/browser/autocomplete/autocomplete_edit_view_mac.h index e564706..854099b 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h +++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.h @@ -87,6 +87,9 @@ class AutocompleteEditViewMac : public AutocompleteEditView { // Helper functions for use from AutocompleteEditHelper Objective-C // class. + // Returns true if |popup_view_| is open. + bool IsPopupOpen() const; + // Trivial wrappers forwarding to |model_| methods. void OnControlKeyChanged(bool pressed); void OnEscapeKeyPressed(); diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm index 7bbc086..d1f8f31 100644 --- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm +++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm @@ -579,6 +579,10 @@ void AutocompleteEditViewMac::OnPaste() { OnAfterPossibleChange(); } +bool AutocompleteEditViewMac::IsPopupOpen() const { + return popup_view_->IsOpen(); +} + void AutocompleteEditViewMac::OnControlKeyChanged(bool pressed) { model_->OnControlKeyChanged(pressed); } @@ -645,14 +649,17 @@ std::wstring AutocompleteEditViewMac::GetClipboardText(Clipboard* clipboard) { - (BOOL)control:(NSControl*)control textView:(NSTextView*)textView doCommandBySelector:(SEL)cmd { - if (cmd == @selector(moveDown:)) { - edit_view_->OnUpOrDownKeyPressed(false, false); - return YES; - } - - if (cmd == @selector(moveUp:)) { - edit_view_->OnUpOrDownKeyPressed(true, false); - return YES; + // Don't intercept up/down-arrow if the popup isn't open. + if (edit_view_->IsPopupOpen()) { + if (cmd == @selector(moveDown:)) { + edit_view_->OnUpOrDownKeyPressed(false, false); + return YES; + } + + if (cmd == @selector(moveUp:)) { + edit_view_->OnUpOrDownKeyPressed(true, false); + return YES; + } } if (cmd == @selector(scrollPageDown:)) { -- cgit v1.1