Applied patch for correct feedback from DND

actions (not all actions are allowed).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2005-01-16 15:33:28 +00:00
parent ac103441d1
commit c7d94ca4f9
2 changed files with 8 additions and 4 deletions

View 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 ) ) )
{

View 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 ) ) )
{