[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24600] trunk/blender/intern/ghost/intern/ GHOST_EventDragnDrop.h: Drag'n'drop : add freeing of dropped resources upon event object release
Damien Plisson
damien.plisson at yahoo.fr
Tue Nov 17 09:27:11 CET 2009
Revision: 24600
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24600
Author: damien78
Date: 2009-11-17 09:27:11 +0100 (Tue, 17 Nov 2009)
Log Message:
-----------
Drag'n'drop : add freeing of dropped resources upon event object release
Modified Paths:
--------------
trunk/blender/intern/ghost/intern/GHOST_EventDragnDrop.h
Modified: trunk/blender/intern/ghost/intern/GHOST_EventDragnDrop.h
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_EventDragnDrop.h 2009-11-17 00:27:45 UTC (rev 24599)
+++ trunk/blender/intern/ghost/intern/GHOST_EventDragnDrop.h 2009-11-17 08:27:11 UTC (rev 24600)
@@ -50,8 +50,7 @@
* <li> Outside of the normal sequence, dropped data can be sent (GHOST_kEventDraggingDropOnIcon). This can happen when the user drops an object
* on the application icon. (Also used in OSX to pass the filename of the document the user doubled-clicked in the finder)
*
- * <br><br>Note that the event handler is responsible for freeing the received data.
- * <br>And the mouse positions are given in Blender coordinates (y=0 at bottom)
+ * <br><br>Note that the mouse positions are given in Blender coordinates (y=0 at bottom)
*
* <br>Currently supported object types :
* <li>UTF-8 string
@@ -81,7 +80,39 @@
m_dragnDropEventData.data = data;
m_data = &m_dragnDropEventData;
}
+
+ ~GHOST_EventDragnDrop()
+ {
+ //Free the dropped object data
+ if (m_dragnDropEventData.data == NULL)
+ return;
+
+ switch (m_dragnDropEventData.dataType) {
+ case GHOST_kDragnDropTypeBitmap:
+ //Not currently implemented
+ break;
+ case GHOST_kDragnDropTypeFilenames:
+ {
+ GHOST_TStringArray *strArray = (GHOST_TStringArray*)m_dragnDropEventData.data;
+ int i;
+
+ for (i=0;i<strArray->count;i++)
+ free(strArray->strings[i]);
+
+ free(strArray);
+ }
+ break;
+ case GHOST_kDragnDropTypeString:
+ free(m_dragnDropEventData.data);
+ break;
+ default:
+ break;
+ }
+ }
+
+
+
protected:
/** The x,y-coordinates of the cursor position. */
GHOST_TEventDragnDropData m_dragnDropEventData;
More information about the Bf-blender-cvs
mailing list