From f10f3d3651a498b53e191df3bea7909462ca4ac0 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 27 Jun 2011 11:21:25 +0000 Subject: [PATCH] Bugfix #27768 On clicking in a non-active Blender window (when you activated others), the mouse position of the first click was still the old position. Problem is in GHOST; it sends out the 'activate window' event after the mouseclick event itself. Code now checks for this case and reads the correct mouse position. --- source/blender/windowmanager/intern/wm_event_system.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 83ef46d109c..ce3830b059c 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2449,6 +2449,16 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U else event.type= MIDDLEMOUSE; + if(win->active==0) { + int cx, cy; + + /* entering window, update mouse pos. (ghost sends win-activate *after* the mouseclick in window!) */ + wm_get_cursor_position(win, &cx, &cy); + + event.x= evt->x= cx; + event.y= evt->y= cy; + } + /* add to other window if event is there (not to both!) */ owin= wm_event_cursor_other_windows(wm, win, &event); if(owin) { -- 2.28.0