diff options
author | Julian Eisel <eiseljulian@gmail.com> | 2018-04-24 20:59:48 +0300 |
---|---|---|
committer | Julian Eisel <eiseljulian@gmail.com> | 2018-04-24 21:16:44 +0300 |
commit | 2cd9a0ce5c3785be3734d97446ff8470b22d6da7 (patch) | |
tree | 24339a18224f636c14ba4ba6bb8ae0aa7e913758 /source/blender/editors/screen/area.c | |
parent | 34d6b48c47aae25e26e7864ff66314b37669ebcc (diff) |
Hide top-bar in fullscreen
Fullscreen as in the Alt+F10 fullscreen.
Diffstat (limited to 'source/blender/editors/screen/area.c')
-rw-r--r-- | source/blender/editors/screen/area.c | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c index 00b70dc9f66..678c3281335 100644 --- a/source/blender/editors/screen/area.c +++ b/source/blender/editors/screen/area.c @@ -710,7 +710,7 @@ static void fullscreen_azone_initialize(ScrArea *sa, ARegion *ar) { AZone *az; - if (ar->regiontype != RGN_TYPE_WINDOW) + if (ED_area_is_global(sa) || (ar->regiontype != RGN_TYPE_WINDOW)) return; az = (AZone *)MEM_callocN(sizeof(AZone), "fullscreen action zone"); @@ -1480,7 +1480,11 @@ void ED_area_initialize(wmWindowManager *wm, wmWindow *win, ScrArea *sa) const int window_size_y = WM_window_pixels_y(win); ARegion *ar; rcti rect; - + + if (ED_area_is_global(sa) && (sa->global->flag & GLOBAL_AREA_IS_HIDDEN)) { + return; + } + /* set typedefinitions */ sa->type = BKE_spacetype_from_id(sa->spacetype); @@ -2200,6 +2204,34 @@ bool ED_area_is_global(const ScrArea *area) return area->global != NULL; } +ScrArea *ED_screen_areas_iter_first(const wmWindow *win, const bScreen *screen) +{ + ScrArea *global_area = win->global_areas.areabase.first; + + if (!global_area) { + return screen->areabase.first; + } + else if ((global_area->global->flag & GLOBAL_AREA_IS_HIDDEN) == 0) { + return global_area; + } + /* Find next visible area. */ + return ED_screen_areas_iter_next(screen, global_area); +} +ScrArea *ED_screen_areas_iter_next(const bScreen *screen, const ScrArea *area) +{ + if (area->global) { + for (ScrArea *area_iter = area->next; area_iter; area_iter = area_iter->next) { + if ((area_iter->global->flag & GLOBAL_AREA_IS_HIDDEN) == 0) { + return area_iter; + } + } + /* No visible next global area found, start iterating over layout areas. */ + return screen->areabase.first; + } + + return area->next; +} + /** * For now we just assume all global areas are made up out of horizontal bars * with the same size. A fixed size could be stored in ARegion instead if needed. |