X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88a7a4e10ed18f81a576dcd866cfbf02bf404c00..f1b18eba7fe703f9bd13c01741b852840fabe711:/src/gtk1/dnd.cpp?ds=sidebyside diff --git a/src/gtk1/dnd.cpp b/src/gtk1/dnd.cpp index 29094ff240..2295ecef46 100644 --- a/src/gtk1/dnd.cpp +++ b/src/gtk1/dnd.cpp @@ -16,14 +16,13 @@ #ifndef WX_PRECOMP #include "wx/intl.h" + #include "wx/log.h" + #include "wx/app.h" + #include "wx/utils.h" + #include "wx/window.h" + #include "wx/gdicmn.h" #endif -#include "wx/log.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" - #include "wx/gtk1/private.h" #include @@ -59,6 +58,10 @@ static long gs_flagsForDrag = 0; // (there are quite a few of them, so don't enable this by default) static const wxChar *TRACE_DND = _T("dnd"); +extern GdkEvent *g_lastMouseEvent; + +extern int g_lastButtonNumber; + //---------------------------------------------------------------------------- // standard icons //---------------------------------------------------------------------------- @@ -872,29 +875,8 @@ wxDragResult wxDropSource::DoDragDrop(int flags) } delete[] array; - GdkEventMotion event; - event.window = m_widget->window; - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer( event.window, &x, &y, &state ); - event.x = x; - event.y = y; - event.state = state; - event.time = (guint32)GDK_CURRENT_TIME; - - /* GTK wants to know which button was pressed which caused the dragging */ - int button_number = 0; - if (event.state & GDK_BUTTON1_MASK) button_number = 1; - else if (event.state & GDK_BUTTON2_MASK) button_number = 2; - else if (event.state & GDK_BUTTON3_MASK) button_number = 3; - -#if wxUSE_THREADS - /* disable GUI threads */ -#endif - /* don't start dragging if no button is down */ - if (button_number) + if (g_lastButtonNumber) { int action = GDK_ACTION_COPY; if ( flags & wxDrag_AllowMove ) @@ -908,8 +890,8 @@ wxDragResult wxDropSource::DoDragDrop(int flags) GdkDragContext *context = gtk_drag_begin( m_widget, target_list, (GdkDragAction)action, - button_number, /* number of mouse button which started drag */ - (GdkEvent*) &event ); + g_lastButtonNumber, // number of mouse button which started drag + (GdkEvent*) g_lastMouseEvent ); m_dragContext = context; @@ -923,10 +905,6 @@ wxDragResult wxDropSource::DoDragDrop(int flags) m_retValue = wxDragCancel; } -#if wxUSE_THREADS - /* re-enable GUI threads */ -#endif - g_blockEventsOnDrag = false; UnregisterWindow();