summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/gtk/PasteboardHelper.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-10-22 13:02:20 +0100
committerBen Murdoch <benm@google.com>2010-10-26 15:21:41 +0100
commita94275402997c11dd2e778633dacf4b7e630a35d (patch)
treee66f56c67e3b01f22c9c23cd932271ee9ac558ed /WebCore/platform/gtk/PasteboardHelper.cpp
parent09e26c78506587b3f5d930d7bc72a23287ffbec0 (diff)
downloadexternal_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.zip
external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.gz
external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.bz2
Merge WebKit at r70209: Initial merge by Git
Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
Diffstat (limited to 'WebCore/platform/gtk/PasteboardHelper.cpp')
-rw-r--r--WebCore/platform/gtk/PasteboardHelper.cpp44
1 files changed, 7 insertions, 37 deletions
diff --git a/WebCore/platform/gtk/PasteboardHelper.cpp b/WebCore/platform/gtk/PasteboardHelper.cpp
index 95df25f..9f75728 100644
--- a/WebCore/platform/gtk/PasteboardHelper.cpp
+++ b/WebCore/platform/gtk/PasteboardHelper.cpp
@@ -92,17 +92,6 @@ GtkTargetList* PasteboardHelper::targetList() const
return m_targetList;
}
-static Vector<KURL> urisToKURLVector(gchar** uris)
-{
- ASSERT(uris);
-
- Vector<KURL> uriList;
- for (int i = 0; *(uris + i); i++)
- uriList.append(KURL(KURL(), *(uris + i)));
-
- return uriList;
-}
-
static String selectionDataToUTF8String(GtkSelectionData* data)
{
// g_strndup guards against selection data that is not null-terminated.
@@ -130,11 +119,7 @@ void PasteboardHelper::getClipboardContents(GtkClipboard* clipboard)
if (gtk_clipboard_wait_is_target_available(clipboard, uriListAtom)) {
if (GtkSelectionData* data = gtk_clipboard_wait_for_contents(clipboard, uriListAtom)) {
- gchar** uris = gtk_selection_data_get_uris(data);
- if (uris) {
- dataObject->setURIList(urisToKURLVector(uris));
- g_strfreev(uris);
- }
+ dataObject->setURIList(selectionDataToUTF8String(data));
gtk_selection_data_free(data);
}
}
@@ -151,13 +136,9 @@ void PasteboardHelper::fillSelectionData(GtkSelectionData* selectionData, guint
reinterpret_cast<const guchar*>(markup.get()), strlen(markup.get()) + 1);
} else if (info == getIdForTargetType(TargetTypeURIList)) {
- Vector<KURL> uriList(dataObject->uriList());
- gchar** uris = g_new0(gchar*, uriList.size() + 1);
- for (size_t i = 0; i < uriList.size(); i++)
- uris[i] = g_strdup(uriList[i].string().utf8().data());
-
- gtk_selection_data_set_uris(selectionData, uris);
- g_strfreev(uris);
+ CString uriList = dataObject->uriList().utf8();
+ gtk_selection_data_set(selectionData, uriListAtom, 8,
+ reinterpret_cast<const guchar*>(uriList.data()), uriList.length() + 1);
} else if (info == getIdForTargetType(TargetTypeNetscapeURL) && dataObject->hasURL()) {
String url(dataObject->url());
@@ -209,27 +190,16 @@ void PasteboardHelper::fillDataObjectFromDropData(GtkSelectionData* data, guint
else if (target == markupAtom)
dataObject->setMarkup(selectionDataToUTF8String(data));
else if (target == uriListAtom) {
- gchar** uris = gtk_selection_data_get_uris(data);
- if (!uris)
- return;
-
- Vector<KURL> uriList(urisToKURLVector(uris));
- dataObject->setURIList(uriList);
- g_strfreev(uris);
+ dataObject->setURIList(selectionDataToUTF8String(data));
} else if (target == netscapeURLAtom) {
String urlWithLabel(selectionDataToUTF8String(data));
-
Vector<String> pieces;
urlWithLabel.split("\n", pieces);
// Give preference to text/uri-list here, as it can hold more
// than one URI but still take the label if there is one.
- if (!dataObject->hasURL()) {
- Vector<KURL> uriList;
- uriList.append(KURL(KURL(), pieces[0]));
- dataObject->setURIList(uriList);
- }
-
+ if (!dataObject->hasURIList())
+ dataObject->setURIList(pieces[0]);
if (pieces.size() > 1)
dataObject->setText(pieces[1]);
}