| Index: chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
|
| ===================================================================
|
| --- chrome/browser/autocomplete/autocomplete_edit_view_mac.mm (revision 26600)
|
| +++ chrome/browser/autocomplete/autocomplete_edit_view_mac.mm (working copy)
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <Carbon/Carbon.h> // kVK_Return
|
| #include "app/gfx/font.h"
|
| +#include "app/l10n_util_mac.h"
|
| #include "app/resource_bundle.h"
|
| #include "base/clipboard.h"
|
| #import "base/cocoa_protocols_mac.h"
|
| @@ -18,6 +19,7 @@
|
| #include "chrome/browser/cocoa/autocomplete_text_field.h"
|
| #include "chrome/browser/cocoa/event_utils.h"
|
| #include "chrome/browser/tab_contents/tab_contents.h"
|
| +#include "grit/generated_resources.h"
|
|
|
| // Focus-handling between |field_| and |model_| is a bit subtle.
|
| // Other platforms detect change of focus, which is inconvenient
|
| @@ -606,6 +608,27 @@
|
| OnAfterPossibleChange();
|
| }
|
|
|
| +bool AutocompleteEditViewMac::CanPasteAndGo() {
|
| + return
|
| + model_->CanPasteAndGo(GetClipboardText(g_browser_process->clipboard()));
|
| +}
|
| +
|
| +int AutocompleteEditViewMac::GetPasteActionStringId() {
|
| + DCHECK(CanPasteAndGo());
|
| +
|
| + // Use PASTE_AND_SEARCH as the default fallback (although the DCHECK above
|
| + // should never trigger).
|
| + if (!model_->is_paste_and_search())
|
| + return IDS_PASTE_AND_GO;
|
| + else
|
| + return IDS_PASTE_AND_SEARCH;
|
| +}
|
| +
|
| +void AutocompleteEditViewMac::OnPasteAndGo() {
|
| + if (CanPasteAndGo())
|
| + model_->PasteAndGo();
|
| +}
|
| +
|
| bool AutocompleteEditViewMac::OnTabPressed() {
|
| if (model_->is_keyword_hint() && !model_->keyword().empty()) {
|
| model_->AcceptKeyword();
|
| @@ -836,6 +859,18 @@
|
| return NO;
|
| }
|
|
|
| +- (NSString*)control:(NSControl*)control
|
| + textPasteActionString:(NSText*)fieldEditor {
|
| + if (!edit_view_->CanPasteAndGo())
|
| + return nil;
|
| +
|
| + return l10n_util::GetNSStringWithFixup(edit_view_->GetPasteActionStringId());
|
| +}
|
| +
|
| +- (void)control:(NSControl*)control textDidPasteAndGo:(NSText*)fieldEditor {
|
| + edit_view_->OnPasteAndGo();
|
| +}
|
| +
|
| // Signal that we've lost focus when the window resigns key.
|
| - (void)windowDidResignKey:(NSNotification*)notification {
|
| edit_view_->OnDidResignKey();
|
|
|