]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/dnd.cpp
Replaced SOCKLEN_T by WX_SOCKLEN_T to resolve conflict with AIX system headers.
[wxWidgets.git] / src / mac / carbon / dnd.cpp
index eac973dd14d3380002510e64e4103b7aa46259a0..a84bce9196ca521fafe5f1bc714271f5d4334dc0 100644 (file)
@@ -301,7 +301,7 @@ wxDropSource::~wxDropSource()
 }
 
 
-wxDragResult wxDropSource::DoDragDrop(int WXUNUSED(flags))
+wxDragResult wxDropSource::DoDragDrop(int flags)
 {
     wxASSERT_MSG( m_data, wxT("Drop source: no data") );
     
@@ -416,7 +416,12 @@ wxDragResult wxDropSource::DoDragDrop(int WXUNUSED(flags))
     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;
 }
 
@@ -492,20 +497,20 @@ pascal OSErr wxMacWindowDragTrackingHandler(DragTrackingMessage theMessage, Wind
 
 
             
-//            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 )
@@ -596,8 +601,7 @@ pascal OSErr wxMacWindowDragTrackingHandler(DragTrackingMessage theMessage, Wind
                   }
                 }
                 
-          }
-            // MyTrackItemUnderMouse(localMouse, theWindow);
+            }
             break;
         case kDragTrackingLeaveWindow:
             if (trackingGlobals->m_currentTarget)