aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2023-12-09 14:44:49 +0100
committerTom de Vries <tdevries@suse.de>2023-12-09 14:44:49 +0100
commit2540e3a87edcb734ef448c3a68ac4827e298f76f (patch)
treed7cfdc5e225937e7e70eede65a09d97a4f436df5 /gdb/tui
parent95385060771b0cac95a39320c44eca857fb177ae (diff)
downloadfsf-binutils-gdb-2540e3a87edcb734ef448c3a68ac4827e298f76f.zip
fsf-binutils-gdb-2540e3a87edcb734ef448c3a68ac4827e298f76f.tar.gz
fsf-binutils-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.c27
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;