- if (!m_hasAtom)
- {
- m_hasAtom = TRUE;
-
- if (m_type == wxDF_TEXT)
- {
- m_atom = g_textAtom;
- }
- else
- if (m_type == wxDF_BITMAP)
- {
- m_atom = GDK_TARGET_BITMAP;
- }
- else
- if (m_type == wxDF_PRIVATE)
- {
- m_atom = gdk_atom_intern( MBSTRINGCAST m_id.mbc_str(), FALSE );
- }
- else
- if (m_type == wxDF_FILENAME)
- {
- m_atom = gdk_atom_intern( "file:ALL", FALSE );
- }
- else
- {
- m_hasAtom = FALSE;
- m_atom = (GdkAtom) 0;
- }
- }
-
- return m_atom;
+ PrepareFormats();
+ m_type = wxDF_PRIVATE;
+ m_format = gdk_atom_intern( id.ToAscii(), FALSE );
+}
+
+void wxDataFormat::PrepareFormats()
+{
+ // VZ: GNOME included in RedHat 6.1 uses the MIME types below and not the
+ // atoms STRING and file:ALL as the old code was, but normal X apps
+ // use STRING for text selection when transfering the data via
+ // clipboard, for example, so do use STRING for now (GNOME apps will
+ // probably support STRING as well for compatibility anyhow), but use
+ // text/uri-list for file dnd because compatibility is not important
+ // here (with whom?)
+ if (!g_textAtom)
+#if wxUSE_UNICODE
+ g_textAtom = gdk_atom_intern( "UTF8_STRING", FALSE );
+ g_altTextAtom = gdk_atom_intern( "STRING", FALSE );
+#else
+ g_textAtom = gdk_atom_intern( "STRING" /* "text/plain" */, FALSE );
+#endif
+ if (!g_pngAtom)
+ g_pngAtom = gdk_atom_intern( "image/png", FALSE );
+ if (!g_fileAtom)
+ g_fileAtom = gdk_atom_intern( "text/uri-list", FALSE );