]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied patch for correct feedback from DND
authorRobert Roebling <robert@roebling.de>
Sun, 16 Jan 2005 15:33:28 +0000 (15:33 +0000)
committerRobert Roebling <robert@roebling.de>
Sun, 16 Jan 2005 15:33:28 +0000 (15:33 +0000)
  actions (not all actions are allowed).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/dnd.cpp
src/gtk1/dnd.cpp

index bacea138e7723e98924f993775921d3110cac4f0..02701c7a5408c48ff8befae7b3a87d692c741ec8 100644 (file)
@@ -220,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;
@@ -371,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 ) ) )
     {
index bacea138e7723e98924f993775921d3110cac4f0..02701c7a5408c48ff8befae7b3a87d692c741ec8 100644 (file)
@@ -220,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;
@@ -371,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 ) ) )
     {