From: Hannes Domani Date: Mon, 21 Dec 2020 12:16:24 +0000 (+0100) Subject: Fix TUI source window drawing X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b5ff370e964a5a794a6b5791ca55ac103ebffe70;p=binutils-gdb.git Fix TUI source window drawing The smaxrow and smaxcol parameters of prefresh are the bottom right corner of the text area inclusive, not exclusive. And if the source window grows bigger in height, the pad has to grow as well. gdb/ChangeLog: 2021-01-05 Hannes Domani PR tui/26927 * tui/tui-winsource.c (tui_source_window_base::refresh_window): Fix source pad size in prefresh. (tui_source_window_base::show_source_content): Grow source pad if necessary. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7ece6c75d9c..7716ff9b1aa 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2021-01-05 Hannes Domani + + PR tui/26927 + * tui/tui-winsource.c (tui_source_window_base::refresh_window): + Fix source pad size in prefresh. + (tui_source_window_base::show_source_content): Grow source pad + if necessary. + 2021-01-04 Mike Frysinger * bfin-tdep.c (bfin_push_dummy_call): Use align_up. diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index adbd2777fc7..55b66e1bc16 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -262,7 +262,7 @@ tui_source_window_base::refresh_window () scrolled beyond where we clip. */ m_horizontal_offset = pad_x; prefresh (m_pad.get (), 0, pad_x, y + 1, x + left_margin, - y + 1 + m_content.size (), x + left_margin + view_width - 1); + y + m_content.size (), x + left_margin + view_width - 1); } void @@ -273,7 +273,8 @@ tui_source_window_base::show_source_content () check_and_display_highlight_if_needed (); int pad_width = std::max (m_max_length, width); - if (m_pad == nullptr || pad_width > getmaxx (m_pad.get ())) + if (m_pad == nullptr || pad_width > getmaxx (m_pad.get ()) + || m_content.size () > getmaxy (m_pad.get ())) m_pad.reset (newpad (m_content.size (), pad_width)); werase (m_pad.get ());