X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b2dea2ab4d0dc237a236414946433856fa854dc0..636d266b8993dd831aa47bdd7e673be32166b54a:/src/gtk/dnd.cpp?ds=sidebyside diff --git a/src/gtk/dnd.cpp b/src/gtk/dnd.cpp index fdfeb4fade..5d4111c304 100644 --- a/src/gtk/dnd.cpp +++ b/src/gtk/dnd.cpp @@ -155,6 +155,8 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget), wxDragResult result; if ( context->suggested_action == GDK_ACTION_COPY ) result = wxDragCopy; + else if ( context->suggested_action == GDK_ACTION_LINK ) + result = wxDragLink; else result = wxDragMove; @@ -175,6 +177,8 @@ static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget), GdkDragAction action; if (result == wxDragCopy) action = GDK_ACTION_COPY; + else if (result == wxDragLink) + action = GDK_ACTION_LINK; else action = GDK_ACTION_MOVE; @@ -325,6 +329,8 @@ static void target_drag_data_received( GtkWidget *WXUNUSED(widget), wxDragResult result; if ( context->suggested_action == GDK_ACTION_COPY ) result = wxDragCopy; + else if ( context->suggested_action == GDK_ACTION_LINK ) + result = wxDragLink; else result = wxDragMove; @@ -570,9 +576,9 @@ source_drag_data_get (GtkWidget *WXUNUSED(widget), // "drag_data_delete" //---------------------------------------------------------------------------- -static void source_drag_data_delete( GtkWidget *WXUNUSED(widget), - GdkDragContext *WXUNUSED(context), - wxDropSource *WXUNUSED(drop_source) ) +static void source_drag_data_delete( GtkWidget *WXUNUSED(widget), + GdkDragContext *context, + wxDropSource *WXUNUSED(drop_source) ) { if (g_isIdle) wxapp_install_idle_handler(); @@ -621,6 +627,7 @@ gtk_dnd_window_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigur wxDragResult action = wxDragNone; if (source->m_dragContext->action == GDK_ACTION_COPY) action = wxDragCopy; + if (source->m_dragContext->action == GDK_ACTION_LINK) action = wxDragLink; if (source->m_dragContext->action == GDK_ACTION_MOVE) action = wxDragMove; source->GiveFeedback( action ); @@ -800,11 +807,12 @@ wxDragResult wxDropSource::DoDragDrop( bool allowMove ) /* don't start dragging if no button is down */ if (button_number) { - GdkDragAction action = GDK_ACTION_COPY; - if (allowMove) action = (GdkDragAction)(GDK_ACTION_MOVE|GDK_ACTION_COPY); + int action = GDK_ACTION_COPY; + if ( allowMove ) + action |= GDK_ACTION_MOVE; GdkDragContext *context = gtk_drag_begin( m_widget, target_list, - action, + (GdkDragAction)action, button_number, /* number of mouse button which started drag */ (GdkEvent*) &event ); @@ -816,6 +824,8 @@ wxDragResult wxDropSource::DoDragDrop( bool allowMove ) if (context->action == GDK_ACTION_COPY) m_retValue = wxDragCopy; + if (context->action == GDK_ACTION_LINK) + m_retValue = wxDragLink; if (context->action == GDK_ACTION_MOVE) m_retValue = wxDragMove; }