Fix T59445: top bar hides everything when there isn't enough space.
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Wed, 13 Mar 2019 19:13:09 +0000 (20:13 +0100)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Wed, 13 Mar 2019 19:14:49 +0000 (20:14 +0100)
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.

release/scripts/startup/bl_ui/space_topbar.py
source/blender/editors/space_topbar/space_topbar.c

index 48922911507877f9b830206cd6a048397d721324..9bf2d48c6ee1d3f23d1de1fa6a35da26eb3bcae9 100644 (file)
@@ -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
 
index e31f29cec8c448957d281494ebc3975fd231d7ce..61a6517a83e0b933529336f2562f110af227c495 100644 (file)
@@ -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(&region->v2d, V2D_COMMONVIEW_HEADER, region->winx, region->winy);