From 1e4095f71dee55c18f41045d884f26fd038ffe96 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 14 Nov 2006 23:55:25 +0000 Subject: [PATCH] backported changes from gtk/window.cpp rev 1.678 (bug 1531348) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/gtk1/window.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 08942c4548..25864e277a 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -225,6 +225,10 @@ wxWindowGTK *g_delayedFocus = (wxWindowGTK*) NULL; // the last click here (extern: used from gtk/menu.cpp) guint32 wxGtkTimeLastClick = 0; +// Save the last mouse event for drag start +GdkEvent *g_lastMouseEvent = (GdkEvent*) NULL; +int g_lastButtonNumber = 0; + extern bool g_mainThreadLocked; //----------------------------------------------------------------------------- @@ -1468,6 +1472,8 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; + g_lastButtonNumber = gdk_event->button; + if (win->m_wxwindow && (g_focusWindow != win) && win->AcceptsFocus()) { gtk_widget_grab_focus( win->m_wxwindow ); @@ -1575,6 +1581,8 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, return FALSE; } + g_lastMouseEvent = (GdkEvent*) gdk_event; + wxMouseEvent event( event_type ); InitMouseEvent( win, event, gdk_event ); @@ -1651,6 +1659,8 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; + g_lastButtonNumber = 0; + wxEventType event_type = wxEVT_NULL; switch (gdk_event->button) @@ -1672,6 +1682,8 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, return FALSE; } + g_lastMouseEvent = (GdkEvent*) gdk_event; + wxMouseEvent event( event_type ); InitMouseEvent( win, event, gdk_event ); @@ -1723,6 +1735,8 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget, gdk_event->y = y; } + g_lastMouseEvent = (GdkEvent*) gdk_event; + /* printf( "OnMotion from " ); if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) -- 2.47.2