]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/dnd.cpp
Build fixes.
[wxWidgets.git] / src / gtk1 / dnd.cpp
index d8487a913b1c8411ddc7febed532f7e084b4c0a7..02701c7a5408c48ff8befae7b3a87d692c741ec8 100644 (file)
@@ -7,12 +7,17 @@
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma implementation "dnd.h"
 #endif
 
-#include "wx/dnd.h"
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
 
+#include "wx/dnd.h"
+#include "wx/log.h"
+                                                                              
+                                                                               
 #if wxUSE_DRAG_AND_DROP
 
 #include "wx/window.h"
@@ -110,7 +115,7 @@ static const char * page_xpm[] = {
 // ============================================================================
 
 // ----------------------------------------------------------------------------
-// convert between GTK+ and wxWindows DND constants
+// convert between GTK+ and wxWidgets DND constants
 // ----------------------------------------------------------------------------
 
 static wxDragResult ConvertFromGTK(long action)
@@ -215,7 +220,9 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget),
     if (ret)
     {
         GdkDragAction action;
-        if (result == wxDragCopy)
+        if ((result == wxDragCopy) && (context->actions & GDK_ACTION_COPY) ||
+            (result == wxDragMove) && !(context->actions & GDK_ACTION_MOVE) ||
+            (result == wxDragLink) && !(context->actions & GDK_ACTION_LINK))
             action = GDK_ACTION_COPY;
         else if (result == wxDragLink)
             action = GDK_ACTION_LINK;
@@ -366,7 +373,7 @@ static void target_drag_data_received( GtkWidget *WXUNUSED(widget),
        this is only valid for the duration of this call */
     drop_target->SetDragData( data );
 
-    wxDragResult result = ConvertFromGTK(context->suggested_action);
+    wxDragResult result = ConvertFromGTK(context->action);
 
     if ( wxIsDragResultOk( drop_target->OnData( x, y, result ) ) )
     {