Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2011-03-04 21:39:58 +0300
committerTon Roosendaal <ton@blender.org>2011-03-04 21:39:58 +0300
commit882514d28f074b37c1c7690a58c6979fcde56c45 (patch)
tree03b01a92c8163146cadaf8eeaa6046819d9254ad /source/blender/windowmanager
parent9d5c6bbe3dd5ebb7de05db482940b3e7207e8cd4 (diff)
Bugfix #26270
Transform started with button in Toolbar was drawing the helper line badly. This needed two fixes: - helper line now has poll() callback to check for correct region - event system needs to set 'subwinactive' for modal handlers too The latter might fix issues with cursor/overlay drawing in other cases?
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index fab3f05ca01..4268f192821 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1622,6 +1622,7 @@ static void wm_paintcursor_test(bContext *C, wmEvent *event)
if(wm->paintcursors.first) {
ARegion *ar= CTX_wm_region(C);
+
if(ar)
wm_paintcursor_tag(C, wm->paintcursors.first, ar);
@@ -1734,6 +1735,14 @@ void wm_event_do_handlers(bContext *C)
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));
+ /* XXX to solve, here screen handlers? */
+ if(event->type==MOUSEMOVE) {
+ /* state variables in screen, cursors, also used in wm_draw.c */
+ ED_screen_set_subwinactive(win, event);
+ /* for regions having custom cursors */
+ wm_paintcursor_test(C, event);
+ }
+
/* MVC demands to not draw in event handlers... but we need to leave it for ogl selecting etc */
wm_window_make_drawable(C, win);
@@ -1754,15 +1763,7 @@ void wm_event_do_handlers(bContext *C)
ScrArea *sa;
ARegion *ar;
int doit= 0;
-
- /* XXX to solve, here screen handlers? */
- if(event->type==MOUSEMOVE) {
- /* state variables in screen, cursors */
- ED_screen_set_subwinactive(win, event);
- /* for regions having custom cursors */
- wm_paintcursor_test(C, event);
- }
-
+
for(sa= win->screen->areabase.first; sa; sa= sa->next) {
if(wm_event_inside_i(event, &sa->totrct)) {
CTX_wm_area_set(C, sa);