diff options
author | Ton Roosendaal <ton@blender.org> | 2009-02-16 18:08:06 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-02-16 18:08:06 +0300 |
commit | 3b6218405b90395cf59e725ebf678cd198d03dc6 (patch) | |
tree | 2204f2197e512a3e5751d03cbc7ea88b243a35a9 /source/blender/windowmanager | |
parent | 27d52217cafd1cd50fae354b3b3b16b0649f3b1c (diff) |
2.5
Some small fixes:
- handler operator exec gave too quick a warning for invalid area
(set area context to NULL is OK :)
- 4-split 3D view with clip option didn't reset clip when 4-split
was disabled
- creating a new 3d view didn't initialize buttons region correct.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/intern/wm_event_system.c | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index 80cef611974..804c8e6b828 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -468,22 +468,26 @@ static void wm_handler_op_context(bContext *C, wmEventHandler *handler) bScreen *screen= CTX_wm_screen(C); if(screen && handler->op) { - ScrArea *sa; - - for(sa= screen->areabase.first; sa; sa= sa->next) - if(sa==handler->op_area) - break; - if(sa==NULL) - printf("internal error: handler (%s) has invalid area\n", handler->op->type->idname); + if(handler->op_area==NULL) + CTX_wm_area_set(C, NULL); else { - ARegion *ar; - CTX_wm_area_set(C, sa); - for(ar= sa->regionbase.first; ar; ar= ar->next) - if(ar==handler->op_region) + ScrArea *sa; + + for(sa= screen->areabase.first; sa; sa= sa->next) + if(sa==handler->op_area) break; - /* XXX no warning print here, after full-area and back regions are remade */ - if(ar) - CTX_wm_region_set(C, ar); + if(sa==NULL) + printf("internal error: handler (%s) has invalid area\n", handler->op->type->idname); + else { + ARegion *ar; + CTX_wm_area_set(C, sa); + for(ar= sa->regionbase.first; ar; ar= ar->next) + if(ar==handler->op_region) + break; + /* XXX no warning print here, after full-area and back regions are remade */ + if(ar) + CTX_wm_region_set(C, ar); + } } } } |