Files from a Drop were only added but the fileslist never cleared

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@19226 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2003-02-15 08:38:04 +00:00
parent 38353dcfac
commit e55bc9a4ff
2 changed files with 26 additions and 4 deletions

View File

@@ -173,6 +173,7 @@ bool wxDropTarget::GetData()
{
UInt16 items ;
OSErr result;
bool firstFileAdded = false ;
CountDragItems((DragReference)m_currentDrag, &items);
for (UInt16 index = 1; index <= items; ++index)
{
@@ -195,7 +196,11 @@ bool wxDropTarget::GetData()
Ptr theData ;
GetFlavorDataSize((DragReference)m_currentDrag, theItem, theType, &dataSize);
if ( theType == 'TEXT' )
{
// this increment is only valid for allocating, on the next GetFlavorData
// call it is reset again to the original value
dataSize++ ;
}
theData = new char[dataSize];
GetFlavorData((DragReference)m_currentDrag, theItem, theType, (void*) theData, &dataSize, 0L);
if( theType == 'TEXT' )
@@ -203,7 +208,7 @@ bool wxDropTarget::GetData()
theData[dataSize]=0 ;
if ( wxApp::s_macDefaultEncodingIsPC )
{
wxMacConvertToPC((char*)theData) ;
wxMacConvertToPC((char*)theData,(char*)theData,dataSize) ;
}
m_dataObject->SetData( format, dataSize, theData );
}
@@ -211,7 +216,13 @@ bool wxDropTarget::GetData()
{
HFSFlavor* theFile = (HFSFlavor*) theData ;
wxString name = wxMacFSSpec2MacFilename( &theFile->fileSpec ) ;
((wxFileDataObject*)m_dataObject)->AddFile( name ) ;
if ( firstFileAdded )
((wxFileDataObject*)m_dataObject)->AddFile( name ) ;
else
{
((wxFileDataObject*)m_dataObject)->SetData( 0 , name.c_str() ) ;
firstFileAdded = true ;
}
}
else
{

View File

@@ -173,6 +173,7 @@ bool wxDropTarget::GetData()
{
UInt16 items ;
OSErr result;
bool firstFileAdded = false ;
CountDragItems((DragReference)m_currentDrag, &items);
for (UInt16 index = 1; index <= items; ++index)
{
@@ -195,7 +196,11 @@ bool wxDropTarget::GetData()
Ptr theData ;
GetFlavorDataSize((DragReference)m_currentDrag, theItem, theType, &dataSize);
if ( theType == 'TEXT' )
{
// this increment is only valid for allocating, on the next GetFlavorData
// call it is reset again to the original value
dataSize++ ;
}
theData = new char[dataSize];
GetFlavorData((DragReference)m_currentDrag, theItem, theType, (void*) theData, &dataSize, 0L);
if( theType == 'TEXT' )
@@ -203,7 +208,7 @@ bool wxDropTarget::GetData()
theData[dataSize]=0 ;
if ( wxApp::s_macDefaultEncodingIsPC )
{
wxMacConvertToPC((char*)theData) ;
wxMacConvertToPC((char*)theData,(char*)theData,dataSize) ;
}
m_dataObject->SetData( format, dataSize, theData );
}
@@ -211,7 +216,13 @@ bool wxDropTarget::GetData()
{
HFSFlavor* theFile = (HFSFlavor*) theData ;
wxString name = wxMacFSSpec2MacFilename( &theFile->fileSpec ) ;
((wxFileDataObject*)m_dataObject)->AddFile( name ) ;
if ( firstFileAdded )
((wxFileDataObject*)m_dataObject)->AddFile( name ) ;
else
{
((wxFileDataObject*)m_dataObject)->SetData( 0 , name.c_str() ) ;
firstFileAdded = true ;
}
}
else
{