- 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 ;
-
- KeyMap keymap;
- GetKeys(keymap);
- bool optionDown = keymap[1] & 4;
- wxDragResult dndresult = optionDown ? wxDragCopy : wxDragMove;
+ 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;
+