summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/autocomplete/autocomplete_edit_view_mac.mm')
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_mac.mm26
1 files changed, 15 insertions, 11 deletions
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
index e0362a9..c499859 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
@@ -23,6 +23,7 @@
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "net/base/escape.h"
+#import "third_party/mozilla/NSPasteboard+Utils.h"
// Focus-handling between |field_| and |model_| is a bit subtle.
// Other platforms detect change of focus, which is inconvenient
@@ -770,11 +771,15 @@ void AutocompleteEditViewMac::OnDidResignKey() {
ClosePopup();
}
-void AutocompleteEditViewMac::OnCopy() {
+bool AutocompleteEditViewMac::CanCopy() {
const NSRange selection = GetSelectedRange();
- if (selection.length == 0)
- return;
+ return selection.length > 0;
+}
+
+void AutocompleteEditViewMac::CopyToPasteboard(NSPasteboard* pb) {
+ DCHECK(CanCopy());
+ const NSRange selection = GetSelectedRange();
std::wstring text = base::SysNSStringToWide(
[[field_ stringValue] substringWithRange:selection]);
@@ -782,15 +787,14 @@ void AutocompleteEditViewMac::OnCopy() {
bool write_url = false;
model_->AdjustTextForCopy(selection.location, IsSelectAll(), &text, &url,
&write_url);
- string16 text16 = WideToUTF16(text);
- ScopedClipboardWriter scw(g_browser_process->clipboard());
- scw.WriteText(text16);
+
+ NSString* nstext = base::SysWideToNSString(text);
+ [pb declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
+ [pb setString:nstext forType:NSStringPboardType];
+
if (write_url) {
- scw.WriteBookmark(text16, url.spec());
- // This line, cargo cult copied from the Windows and GTK
- // versions (perhaps), breaks paste of an URL into Powerpoint
- // 2008. http://crbug.com/41842
- // scw.WriteHyperlink(EscapeForHTML(WideToUTF8(text)), url.spec());
+ [pb declareURLPasteboardWithAdditionalTypes:[NSArray array] owner:nil];
+ [pb setDataForURL:base::SysUTF8ToNSString(url.spec()) title:nstext];
}
}