diff options
author | Ben Murdoch <benm@google.com> | 2010-10-22 13:02:20 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-10-26 15:21:41 +0100 |
commit | a94275402997c11dd2e778633dacf4b7e630a35d (patch) | |
tree | e66f56c67e3b01f22c9c23cd932271ee9ac558ed /WebCore/platform/gtk/PasteboardHelper.cpp | |
parent | 09e26c78506587b3f5d930d7bc72a23287ffbec0 (diff) | |
download | external_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.cpp | 44 |
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]); } |