}
-wxDragResult wxDropSource::DoDragDrop(int WXUNUSED(flags))
+wxDragResult wxDropSource::DoDragDrop(int flags)
{
wxASSERT_MSG( m_data, wxT("Drop source: no data") );
gTrackingGlobals.m_currentSource = NULL ;
bool optionDown = GetCurrentKeyModifiers() & optionKey ;
- wxDragResult dndresult = optionDown ? wxDragCopy : wxDragMove;
+ wxDragResult dndresult = wxDragCopy ;
+ if ( flags != wxDrag_CopyOnly )
+ {
+ // on mac the option key is always the indication for copy
+ dndresult = optionDown ? wxDragCopy : wxDragMove;
+ }
return dndresult;
}
-// if (attributes & kDragHasLeftSenderWindow)
{
-// wxPoint point(localMouse.h , localMouse.v) ;
wxWindow *win = NULL ;
ControlPartCode controlPart ;
ControlRef control = wxMacFindControlUnderMouse( toplevel , localMouse ,
theWindow , &controlPart ) ;
if ( control )
win = wxFindControlFromMacControl( control ) ;
- // TODO toplevel->MacGetWindowFromPointSub( point , &win ) ;
+ else
+ win = toplevel ;
+
int localx , localy ;
localx = localMouse.h ;
localy = localMouse.v ;
- //TODO : should we use client coordinates
+
if ( win )
win->MacRootWindowToWindow( &localx , &localy ) ;
if ( win != trackingGlobals->m_currentTargetWindow )
}
}
- }
- // MyTrackItemUnderMouse(localMouse, theWindow);
+ }
break;
case kDragTrackingLeaveWindow:
if (trackingGlobals->m_currentTarget)