diff options
author | Ton Roosendaal <ton@blender.org> | 2009-02-17 18:53:52 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-02-17 18:53:52 +0300 |
commit | 9322bddf2c8997adafe3474e50bbb2eab7ab2076 (patch) | |
tree | dcb59d85488efc58d745c9b124bf44a8264526b1 /source/blender/editors/screen/area.c | |
parent | 9185f7931aba220c0b8ac82878e869225f2549dd (diff) |
2.5
Fix for the 'repeat last operator' option. It didn't work yet well
outside editmode. Now undo/redo has to fully keep the UI alive,
even when called from within a running popup.
Another fix: when regions collapse/hide they were not effectively
disabled, still accepting events. (like Nkey in 3d window).
Diffstat (limited to 'source/blender/editors/screen/area.c')
-rw-r--r-- | source/blender/editors/screen/area.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index c738aa78d51..dfbd6c031d1 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -330,6 +330,8 @@ static void region_rect_recursive(ARegion *ar, rcti *remainder, int quad) if(ar==NULL) return; + BLI_init_rcti(&ar->winrct, 0, 0, 0, 0); + /* clear state flags first */ ar->flag &= ~RGN_FLAG_TOO_SMALL; /* user errors */ @@ -603,11 +605,17 @@ void ED_area_initialize(wmWindowManager *wm, wmWindow *win, ScrArea *sa) for(ar= sa->regionbase.first; ar; ar= ar->next) { region_subwindow(wm, win, ar); - /* default region handlers */ - ed_default_handlers(wm, &ar->handlers, ar->type->keymapflag); + if(ar->swinid) { + /* default region handlers */ + ed_default_handlers(wm, &ar->handlers, ar->type->keymapflag); - if(ar->type->init) - ar->type->init(wm, ar); + if(ar->type->init) + ar->type->init(wm, ar); + } + else { + /* prevent uiblocks to run */ + uiFreeBlocks(NULL, &ar->uiblocks); + } } area_azone_initialize(sa); |