summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/cocoa/web_drag_source.mm20
1 files changed, 14 insertions, 6 deletions
diff --git a/chrome/browser/cocoa/web_drag_source.mm b/chrome/browser/cocoa/web_drag_source.mm
index 174df6c..8f5efe7 100644
--- a/chrome/browser/cocoa/web_drag_source.mm
+++ b/chrome/browser/cocoa/web_drag_source.mm
@@ -31,6 +31,10 @@ using net::FileStream;
namespace {
+// An unofficial standard pasteboard title type to be provided alongside the
+// |NSURLPboardType|.
+NSString* const kNSURLTitlePboardType = @"public.url-name";
+
// Make a drag image from the drop data.
// TODO(viettrungluu): Move this somewhere more sensible.
NSImage* MakeDragImage(const WebDropData* drop_data) {
@@ -158,10 +162,13 @@ void PromiseWriterTask::Run() {
// URL.
} else if ([type isEqualToString:NSURLPboardType]) {
DCHECK(dropData_->url.is_valid());
- [pboard setURLs:[NSArray
- arrayWithObject:SysUTF8ToNSString(dropData_->url.spec())]
- withTitles:[NSArray arrayWithObject:
- SysUTF16ToNSString(dropData_->url_title)]];
+ NSURL* url = [NSURL URLWithString:SysUTF8ToNSString(dropData_->url.spec())];
+ [url writeToPasteboard:pboard];
+
+ // URL title.
+ } else if ([type isEqualToString:kNSURLTitlePboardType]) {
+ [pboard setString:SysUTF16ToNSString(dropData_->url_title)
+ forType:kNSURLTitlePboardType];
// File contents.
} else if ([type isEqualToString:NSFileContentsPboardType] ||
@@ -320,9 +327,10 @@ void PromiseWriterTask::Run() {
[pasteboard_ addTypes:[NSArray arrayWithObject:NSHTMLPboardType]
owner:contentsView_];
- // URL.
+ // URL (and title).
if (dropData_->url.is_valid())
- [pasteboard_ addTypes:[NSArray arrayWithObject:NSURLPboardType]
+ [pasteboard_ addTypes:[NSArray arrayWithObjects:NSURLPboardType,
+ kNSURLTitlePboardType, nil]
owner:contentsView_];
// File.