[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36814] trunk/blender/source/blender/ windowmanager/intern/wm_event_system.c: fix [#27458] Links for Logic Bricks no longer work
Campbell Barton
ideasman42 at gmail.com
Sun May 22 06:05:11 CEST 2011
Revision: 36814
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36814
Author: campbellbarton
Date: 2011-05-22 04:05:09 +0000 (Sun, 22 May 2011)
Log Message:
-----------
fix [#27458] Links for Logic Bricks no longer work
event->mval wasn't being set in some cases by the event system.
Modified Paths:
--------------
trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2011-05-21 23:44:36 UTC (rev 36813)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2011-05-22 04:05:09 UTC (rev 36814)
@@ -661,6 +661,11 @@
event->mval[0]= event->x - ar->winrct.xmin;
event->mval[1]= event->y - ar->winrct.ymin;
}
+ else {
+ /* these values are invalid (avoid odd behavior by relying on old mval values) */
+ event->mval[0]= -1;
+ event->mval[1]= -1;
+ }
}
static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports, short poll_only)
@@ -1776,6 +1781,8 @@
/* MVC demands to not draw in event handlers... but we need to leave it for ogl selecting etc */
wm_window_make_drawable(C, win);
+ wm_region_mouse_co(C, event);
+
/* first we do priority handlers, modal + some limited keymaps */
action |= wm_handlers_do(C, event, &win->modalhandlers);
@@ -1811,10 +1818,12 @@
if(wm_event_inside_i(event, &ar->winrct)) {
CTX_wm_region_set(C, ar);
+ /* call even on non mouse events, since the */
+ wm_region_mouse_co(C, event);
+
/* does polls for drop regions and checks uibuts */
/* need to be here to make sure region context is true */
if(ELEM(event->type, MOUSEMOVE, EVT_DROP)) {
- wm_region_mouse_co(C, event);
wm_drags_check_ops(C, event);
}
@@ -1834,9 +1843,10 @@
CTX_wm_region_set(C, NULL);
- if((action & WM_HANDLER_BREAK) == 0)
+ if((action & WM_HANDLER_BREAK) == 0) {
+ wm_region_mouse_co(C, event); /* only invalidates event->mval in this case */
action |= wm_handlers_do(C, event, &sa->handlers);
-
+ }
CTX_wm_area_set(C, NULL);
/* NOTE: do not escape on WM_HANDLER_BREAK, mousemove needs handled for previous area */
@@ -1848,6 +1858,8 @@
CTX_wm_area_set(C, area_event_inside(C, event->x, event->y));
CTX_wm_region_set(C, region_event_inside(C, event->x, event->y));
+ wm_region_mouse_co(C, event);
+
action |= wm_handlers_do(C, event, &win->handlers);
/* fileread case */
More information about the Bf-blender-cvs
mailing list