diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-03-15 23:56:29 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-03-15 23:56:29 +0400 |
commit | 88cf1a2bc73bbd2f2fbf2ba3d5b1e7d4a1db7a93 (patch) | |
tree | 0ff0b71ff27279f622be9ff872d100a64abc3aa4 /source/blender/editors/screen/screen_edit.c | |
parent | 433c82649e0eb7380dd8c6092e6b49cd1b84df26 (diff) |
Screen: add exit callback for area and region types, this gets called when
hiding or removing an area or region.
Diffstat (limited to 'source/blender/editors/screen/screen_edit.c')
-rw-r--r-- | source/blender/editors/screen/screen_edit.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c index 9551b1c4926..6045bdfebfe 100644 --- a/source/blender/editors/screen/screen_edit.c +++ b/source/blender/editors/screen/screen_edit.c @@ -1137,8 +1137,12 @@ void ED_screens_initialize(wmWindowManager *wm) void ED_region_exit(bContext *C, ARegion *ar) { + wmWindowManager *wm = CTX_wm_manager(C); ARegion *prevar = CTX_wm_region(C); + if (ar->type && ar->type->exit) + ar->type->exit(wm, ar); + CTX_wm_region_set(C, ar); WM_event_remove_handlers(C, &ar->handlers); if (ar->swinid) @@ -1157,18 +1161,12 @@ void ED_region_exit(bContext *C, ARegion *ar) void ED_area_exit(bContext *C, ScrArea *sa) { + wmWindowManager *wm = CTX_wm_manager(C); ScrArea *prevsa = CTX_wm_area(C); ARegion *ar; - if (sa->spacetype == SPACE_FILE) { - SpaceLink *sl = sa->spacedata.first; - if (sl && sl->spacetype == SPACE_FILE) { - ED_fileselect_exit(C, (SpaceFile *)sl); - } - } - else if (sa->spacetype == SPACE_VIEW3D) { - ED_render_engine_area_exit(sa); - } + if (sa->type && sa->type->exit) + sa->type->exit(wm, sa); CTX_wm_area_set(C, sa); for (ar = sa->regionbase.first; ar; ar = ar->next) |