From 204a2868a819dc69ba40bec54f541efc59a0d5a5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 5 Dec 2016 09:02:17 +0530 Subject: [PATCH] Top-align the Tall layout --- kitty/layout.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kitty/layout.py b/kitty/layout.py index 0f239364b..a19fdf2eb 100644 --- a/kitty/layout.py +++ b/kitty/layout.py @@ -11,7 +11,7 @@ def available_height(): return viewport_size.height - tab_manager().current_tab_bar_height -def layout_dimension(length, cell_length, number_of_windows=1, border_length=0): +def layout_dimension(length, cell_length, number_of_windows=1, border_length=0, left_align=False): number_of_cells = length // cell_length space_needed_for_border = number_of_windows * 2 * border_length extra = length - number_of_cells * cell_length @@ -20,7 +20,8 @@ def layout_dimension(length, cell_length, number_of_windows=1, border_length=0): extra = length - number_of_cells * cell_length cells_per_window = number_of_cells // number_of_windows extra -= space_needed_for_border - pos = (extra // 2) + border_length + pos = 0 if left_align else (extra // 2) + pos += border_length inner_length = cells_per_window * cell_length window_length = 2 * border_length + inner_length extra = number_of_cells - (cells_per_window * number_of_windows) @@ -104,10 +105,10 @@ class Tall(Layout): return xlayout = layout_dimension(viewport_size.width, cell_size.width, 2, self.border_width) xstart, xnum = next(xlayout) - ystart, ynum = next(layout_dimension(available_height(), cell_size.height, 1, self.border_width)) + ystart, ynum = next(layout_dimension(available_height(), cell_size.height, 1, self.border_width, left_align=True)) windows[0].set_geometry(window_geometry(xstart, xnum, ystart, ynum)) xstart, xnum = next(xlayout) - ylayout = layout_dimension(available_height(), cell_size.height, len(windows) - 1, self.border_width) + ylayout = layout_dimension(available_height(), cell_size.height, len(windows) - 1, self.border_width, left_align=True) for w, (ystart, ynum) in zip(islice(windows, 1, None), ylayout): w.set_geometry(window_geometry(xstart, xnum, ystart, ynum))