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>2009-02-17 18:53:52 +0300
committerTon Roosendaal <ton@blender.org>2009-02-17 18:53:52 +0300
commit9322bddf2c8997adafe3474e50bbb2eab7ab2076 (patch)
treedcb59d85488efc58d745c9b124bf44a8264526b1 /source/blender/editors/screen/area.c
parent9185f7931aba220c0b8ac82878e869225f2549dd (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.c16
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);