diff options
author | Tom de Vries <tdevries@suse.de> | 2023-12-09 14:44:49 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-12-09 14:44:49 +0100 |
commit | 2540e3a87edcb734ef448c3a68ac4827e298f76f (patch) | |
tree | d7cfdc5e225937e7e70eede65a09d97a4f436df5 /gdb/tui | |
parent | 95385060771b0cac95a39320c44eca857fb177ae (diff) | |
download | gdb-2540e3a87edcb734ef448c3a68ac4827e298f76f.zip gdb-2540e3a87edcb734ef448c3a68ac4827e298f76f.tar.gz gdb-2540e3a87edcb734ef448c3a68ac4827e298f76f.tar.bz2 |
[gdb/tui] Handle shared border in fixed-sized layout
In tui_layout_split::apply I noticed that for variable-size layouts we take
share_box into account by decreasing used_size:
...
used_size += info[i].size;
if (info[i].share_box)
--used_size;
...
but not for fixed-size layouts:
...
if (info[i].min_size == info[i].max_size)
available_size -= info[i].min_size;
...
Fix this by increasing available_size for fixed-size layouts with shared box.
Tested on x86_64-linux.
Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/tui')
-rw-r--r-- | gdb/tui/tui-layout.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index a4cb5a8..bb53949 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -855,21 +855,27 @@ tui_layout_split::apply (int x_, int y_, int width_, int height_, continue; } + /* Two adjacent boxed windows will share a border. */ + if (prev != -1 + && m_splits[prev].layout->last_edge_has_border_p () + && m_splits[i].layout->first_edge_has_border_p ()) + info[i].share_box = true; + if (info[i].min_size == info[i].max_size) - available_size -= info[i].min_size; + { + available_size -= info[i].min_size; + if (info[i].share_box) + { + /* A shared border makes a bit more size available. */ + ++available_size; + } + } else { last_index = i; total_weight += m_splits[i].weight; } - /* Two adjacent boxed windows will share a border, making a bit - more size available. */ - if (prev != -1 - && m_splits[prev].layout->last_edge_has_border_p () - && m_splits[i].layout->first_edge_has_border_p ()) - info[i].share_box = true; - prev = i; } @@ -900,7 +906,10 @@ tui_layout_split::apply (int x_, int y_, int width_, int height_, this function. */ used_size += info[i].size; if (info[i].share_box) - --used_size; + { + /* A shared border makes a bit more size available. */ + --used_size; + } } else info[i].size = info[i].min_size; |