Fix T59445: top bar hides everything when there isn't enough space.
Left and right aligned regions get hidden when there is not enough space, and the main center region was empty. Now remove the left region and put its contents in the center region, so that it always remains.
This commit is contained in:
@@ -90,12 +90,10 @@ class TOPBAR_HT_lower_bar(Header):
|
||||
def draw(self, context):
|
||||
region = context.region
|
||||
|
||||
if region.alignment == 'LEFT':
|
||||
self.draw_left(context)
|
||||
elif region.alignment == 'RIGHT':
|
||||
if region.alignment == 'RIGHT':
|
||||
self.draw_right(context)
|
||||
else:
|
||||
self.draw_center(context)
|
||||
self.draw_left(context)
|
||||
|
||||
def draw_left(self, context):
|
||||
layout = self.layout
|
||||
@@ -159,9 +157,6 @@ class TOPBAR_HT_lower_bar(Header):
|
||||
elif context.uv_sculpt_object is not None:
|
||||
layout.popover_group(space_type='PROPERTIES', region_type='WINDOW', context=".uv_sculpt", category="")
|
||||
|
||||
def draw_center(self, context):
|
||||
pass
|
||||
|
||||
def draw_right(self, context):
|
||||
layout = self.layout
|
||||
|
||||
|
||||
@@ -72,15 +72,11 @@ static SpaceLink *topbar_new(const ScrArea *UNUSED(area), const Scene *UNUSED(sc
|
||||
ar->alignment = RGN_ALIGN_RIGHT | RGN_SPLIT_PREV;
|
||||
|
||||
/* main regions */
|
||||
ar = MEM_callocN(sizeof(ARegion), "left aligned main region for topbar");
|
||||
BLI_addtail(&stopbar->regionbase, ar);
|
||||
ar->regiontype = RGN_TYPE_WINDOW;
|
||||
ar->alignment = RGN_ALIGN_LEFT;
|
||||
ar = MEM_callocN(sizeof(ARegion), "right aligned main region for topbar");
|
||||
BLI_addtail(&stopbar->regionbase, ar);
|
||||
ar->regiontype = RGN_TYPE_WINDOW;
|
||||
ar->alignment = RGN_ALIGN_RIGHT;
|
||||
ar = MEM_callocN(sizeof(ARegion), "center main region for topbar");
|
||||
ar = MEM_callocN(sizeof(ARegion), "main region of topbar");
|
||||
BLI_addtail(&stopbar->regionbase, ar);
|
||||
ar->regiontype = RGN_TYPE_WINDOW;
|
||||
|
||||
@@ -117,7 +113,7 @@ static void topbar_main_region_init(wmWindowManager *wm, ARegion *region)
|
||||
wmKeyMap *keymap;
|
||||
|
||||
/* force delayed UI_view2d_region_reinit call */
|
||||
if (ELEM(region->alignment, RGN_ALIGN_LEFT, RGN_ALIGN_RIGHT)) {
|
||||
if (ELEM(region->alignment, RGN_ALIGN_RIGHT)) {
|
||||
region->flag |= RGN_FLAG_DYNAMIC_SIZE;
|
||||
}
|
||||
UI_view2d_region_reinit(®ion->v2d, V2D_COMMONVIEW_HEADER, region->winx, region->winy);
|
||||
|
||||
Reference in New Issue
Block a user