Index: ui/base/clipboard/clipboard_gtk.cc |
diff --git a/ui/base/clipboard/clipboard_gtk.cc b/ui/base/clipboard/clipboard_gtk.cc |
index a63bb8eef7eee0284ba085f74614d0a4cc033bdd..c26028edf4789e9d226d80bf1165c6046d6f5e85 100644 |
--- a/ui/base/clipboard/clipboard_gtk.cc |
+++ b/ui/base/clipboard/clipboard_gtk.cc |
@@ -218,7 +218,7 @@ Clipboard::~Clipboard() { |
gtk_clipboard_store(clipboard_); |
} |
-void Clipboard::WriteObjects(const ObjectMap& objects) { |
+void Clipboard::WriteObjects(Buffer buffer, const ObjectMap& objects) { |
clipboard_data_ = new TargetMap(); |
for (ObjectMap::const_iterator iter = objects.begin(); |
@@ -226,19 +226,21 @@ void Clipboard::WriteObjects(const ObjectMap& objects) { |
DispatchObject(static_cast<ObjectType>(iter->first), iter->second); |
} |
- SetGtkClipboard(); |
+ SetGtkClipboard(buffer); |
} |
// When a URL is copied from a render view context menu (via "copy link |
// location", for example), we additionally stick it in the X clipboard. This |
// matches other linux browsers. |
-void Clipboard::DidWriteURL(const std::string& utf8_text) { |
- gtk_clipboard_set_text(primary_selection_, utf8_text.c_str(), |
- utf8_text.length()); |
+void Clipboard::DidWriteURL(Buffer buffer, const std::string& utf8_text) { |
+ if (buffer == BUFFER_STANDARD) { |
+ gtk_clipboard_set_text(primary_selection_, utf8_text.c_str(), |
+ utf8_text.length()); |
+ } |
} |
// Take ownership of the GTK clipboard and inform it of the targets we support. |
-void Clipboard::SetGtkClipboard() { |
+void Clipboard::SetGtkClipboard(Buffer buffer) { |
scoped_array<GtkTargetEntry> targets( |
new GtkTargetEntry[clipboard_data_->size()]); |
@@ -250,11 +252,13 @@ void Clipboard::SetGtkClipboard() { |
targets[i].info = 0; |
} |
- if (gtk_clipboard_set_with_data(clipboard_, targets.get(), |
+ GtkClipboard *clipboard = LookupBackingClipboard(buffer); |
+ |
+ if (gtk_clipboard_set_with_data(clipboard, targets.get(), |
clipboard_data_->size(), |
GetData, ClearData, |
clipboard_data_)) { |
- gtk_clipboard_set_can_store(clipboard_, |
+ gtk_clipboard_set_can_store(clipboard, |
targets.get(), |
clipboard_data_->size()); |
} |