correct handling of order of preference of formats

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72114 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2012-07-16 19:09:34 +00:00
parent d757ef939e
commit d018f3f761

View File

@@ -394,10 +394,11 @@ bool wxDataObject::IsFormatInPasteboard( void * pb, const wxDataFormat &dataForm
bool wxDataObject::GetFromPasteboard( void * pb ) bool wxDataObject::GetFromPasteboard( void * pb )
{ {
PasteboardRef pasteboard = (PasteboardRef) pb; PasteboardRef pasteboard = (PasteboardRef) pb;
size_t formatcount = GetFormatCount() + 1;
size_t formatcount = GetFormatCount(wxDataObject::Set);
wxDataFormat *array = new wxDataFormat[ formatcount ]; wxDataFormat *array = new wxDataFormat[ formatcount ];
array[0] = GetPreferredFormat(); GetAllFormats(array, wxDataObject::Set);
GetAllFormats( &array[1] );
ItemCount itemCount = 0; ItemCount itemCount = 0;
wxString filenamesPassed; wxString filenamesPassed;
bool transferred = false; bool transferred = false;
@@ -538,10 +539,9 @@ bool wxDataObject::GetFromPasteboard( void * pb )
bool wxDataObject::HasDataInPasteboard( void * pb ) bool wxDataObject::HasDataInPasteboard( void * pb )
{ {
PasteboardRef pasteboard = (PasteboardRef) pb; PasteboardRef pasteboard = (PasteboardRef) pb;
size_t formatcount = GetFormatCount() + 1; size_t formatcount = GetFormatCount(wxDataObject::Set);
wxDataFormat *array = new wxDataFormat[ formatcount ]; wxDataFormat *array = new wxDataFormat[ formatcount ];
array[0] = GetPreferredFormat(); GetAllFormats(array, wxDataObject::Set);
GetAllFormats( &array[1] );
ItemCount itemCount = 0; ItemCount itemCount = 0;
bool hasData = false; bool hasData = false;
@@ -598,10 +598,11 @@ bool wxDataObject::HasDataInPasteboard( void * pb )
void wxDataObject::AddSupportedTypes( void* cfarray) void wxDataObject::AddSupportedTypes( void* cfarray)
{ {
wxDataFormat *array = new wxDataFormat[ GetFormatCount() ]; size_t nFormats = GetFormatCount(wxDataObject::Set);
GetAllFormats( array ); wxDataFormat *array = new wxDataFormat[nFormats];
GetAllFormats(array, wxDataObject::Set);
for (size_t i = 0; i < GetFormatCount(); i++) for (size_t i = 0; i < nFormats; i++)
{ {
wxDataFormat dataFormat = array[ i ]; wxDataFormat dataFormat = array[ i ];