X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e808cf8a0a77ced81143e9b27283a3b2a907a747..e1379e29e21c7eabf6abf19a1f1f46163251b2a8:/src/gtk/dataobj.cpp diff --git a/src/gtk/dataobj.cpp b/src/gtk/dataobj.cpp index ef24cfe8af..ce2ec4730b 100644 --- a/src/gtk/dataobj.cpp +++ b/src/gtk/dataobj.cpp @@ -279,7 +279,13 @@ bool wxFileDataObject::SetData(size_t WXUNUSED(size), const void *buf) lenPrefix += 2; } - AddFile(wxURI::Unescape(filename.c_str() + lenPrefix)); + // It would probably be nicer to use a GTK or Glib + // function to unescape the 8-bit strings pointed to + // by buf, but this does the same in wx code. + wxString filename_unicode = wxURI::Unescape(filename.c_str() + lenPrefix); + wxCharBuffer filename_8bit = wxConvISO8859_1.cWX2MB( filename_unicode ); + filename_unicode = wxConvFileName->cMB2WX( filename_8bit ); + AddFile( filename_unicode ); filename.Empty(); } else if ( !filename.empty() ) @@ -296,6 +302,7 @@ bool wxFileDataObject::SetData(size_t WXUNUSED(size), const void *buf) } else { + // The string is in ISO-8859-1 according to XDND spec filename += *p; } }