// 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"
// ============================================================================
// ----------------------------------------------------------------------------
-// convert between GTK+ and wxWindows DND constants
+// convert between GTK+ and wxWidgets DND constants
// ----------------------------------------------------------------------------
static wxDragResult ConvertFromGTK(long action)
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;
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 ) ) )
{