]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dataobj.cpp
removed Classic files from the manifest after removing them from the cvs
[wxWidgets.git] / src / gtk / dataobj.cpp
index 88ba70ce97f82425409e16e9eeee54f669ccc2e1..ce2ec4730b91e7c7fccfb43c043a30fc03c60637 100644 (file)
@@ -23,7 +23,7 @@
 #include "wx/mstream.h"
 #include "wx/uri.h"
 
-#include <gdk/gdk.h>
+#include "wx/gtk/private.h"
 
 //-------------------------------------------------------------------------
 // global data
@@ -110,10 +110,8 @@ wxDataFormatId wxDataFormat::GetType() const
 
 wxString wxDataFormat::GetId() const
 {
-    gchar* atom_name = gdk_atom_name( m_format );
-    wxString ret = wxString::FromAscii( atom_name );
-    g_free(atom_name);
-    return ret;
+    wxGtkString atom_name(gdk_atom_name(m_format));
+    return wxString::FromAscii(atom_name);
 }
 
 void wxDataFormat::SetId( NativeFormat format )
@@ -281,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() )
@@ -298,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;
         }
     }