- tempRgn , ev->where.h - dragRegionInnerBoundary ,
- ev->where.v - dragRegionInnerBoundary ,
- ev->where.h + dragRegionInnerBoundary ,
- ev->where.v + dragRegionInnerBoundary ) ;
-
- DiffRgn( dragRegion , tempRgn , dragRegion ) ;
- DisposeRgn( tempRgn ) ;
-
- // TODO:work with promises in order to return data only when drag
- // was successfully completed
-
- gTrackingGlobals.m_currentSource = this ;
- result = TrackDrag(theDrag, ev , dragRegion);
- DisposeRgn(dragRegion);
- DisposeDrag(theDrag);
- gTrackingGlobals.m_currentSource = NULL ;
-
- bool optionDown = GetCurrentKeyModifiers() & optionKey ;
- wxDragResult dndresult = wxDragCopy ;
- if ( flags != wxDrag_CopyOnly )
- // on mac the option key is always the indication for copy
- dndresult = optionDown ? wxDragCopy : wxDragMove;
-
- return dndresult;
+ tempRgn,
+ ev->where.h - dragRegionInnerBoundary,
+ ev->where.v - dragRegionInnerBoundary,
+ ev->where.h + dragRegionInnerBoundary,
+ ev->where.v + dragRegionInnerBoundary );
+
+ DiffRgn( dragRegion, tempRgn, dragRegion );
+ DisposeRgn( tempRgn );
+
+ // TODO: work with promises in order to return data
+ // only when drag was successfully completed
+
+ gTrackingGlobals.m_currentSource = this;
+ gTrackingGlobals.m_result = wxDragNone;
+ gTrackingGlobals.m_flags = flags;
+
+ TrackDrag( theDrag, ev, dragRegion );
+ DisposeRgn( dragRegion );
+ DisposeDrag( theDrag );
+ gTrackingGlobals.m_currentSource = NULL;
+
+ return gTrackingGlobals.m_result;