aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-06-17 18:48:00 -0600
committerTom Tromey <tom@tromey.com>2019-06-25 07:48:43 -0600
commitd83f1fe65da075aa08ac7d6b6ef3508587c94600 (patch)
tree75a5b57bf86f3695bfff08926a2769e95474929d /gdb/tui
parent17374de40e7be36e4eb27d29bb8aac89586ce4a1 (diff)
downloadbinutils-d83f1fe65da075aa08ac7d6b6ef3508587c94600.zip
binutils-d83f1fe65da075aa08ac7d6b6ef3508587c94600.tar.gz
binutils-d83f1fe65da075aa08ac7d6b6ef3508587c94600.tar.bz2
Introduce tui_win_info::update_tab_width
This introduces a new tui_win_info::update_tab_width method, and changes the TUI to call it. This fixes another spot that was checking the window type. gdb/ChangeLog 2019-06-25 Tom Tromey <tom@tromey.com> * tui/tui-win.c (tui_source_window_base::update_tab_width): New method. (update_tab_width): Call update_tab_width method. * tui/tui-data.h (struct tui_win_info) (struct tui_source_window_base) <update_tab_width>: New methods.
Diffstat (limited to 'gdb/tui')
-rw-r--r--gdb/tui/tui-data.h7
-rw-r--r--gdb/tui/tui-win.c33
2 files changed, 24 insertions, 16 deletions
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 95c9161..7030e84 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -306,6 +306,11 @@ public:
/* Compute the maximum height of this window. */
virtual int max_height () const;
+ /* Called after the tab width has been changed. */
+ virtual void update_tab_width ()
+ {
+ }
+
/* Set whether this window is highglighted. */
void set_highlight (bool highlight)
{
@@ -362,6 +367,8 @@ public:
void set_new_height (int height) override;
+ void update_tab_width () override;
+
/* Does the locator belong to this window? */
bool m_has_locator = false;
/* Execution information window. */
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 22938b4..d67f42e 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -923,29 +923,30 @@ unsigned int tui_tab_width = DEFAULT_TAB_LEN;
static unsigned int internal_tab_width = DEFAULT_TAB_LEN;
-/* After the tab width is set, call this to update the relevant
- windows. */
+/* See tui-data.h. */
-static void
-update_tab_width ()
+void
+tui_source_window_base::update_tab_width ()
{
/* We don't really change the height of any windows, but
calling these 2 functions causes a complete regeneration
and redisplay of the window's contents, which will take
the new tab width into account. */
- if (tui_win_list[SRC_WIN]
- && tui_win_list[SRC_WIN]->is_visible)
- {
- make_invisible_and_set_new_height (TUI_SRC_WIN,
- TUI_SRC_WIN->height);
- make_visible_with_new_height (TUI_SRC_WIN);
- }
- if (tui_win_list[DISASSEM_WIN]
- && tui_win_list[DISASSEM_WIN]->is_visible)
+ make_invisible_and_set_new_height (this, height);
+ make_visible_with_new_height (this);
+}
+
+/* After the tab width is set, call this to update the relevant
+ windows. */
+
+static void
+update_tab_width ()
+{
+ for (int win_type = SRC_WIN; win_type < MAX_MAJOR_WINDOWS; win_type++)
{
- make_invisible_and_set_new_height (TUI_DISASM_WIN,
- TUI_DISASM_WIN->height);
- make_visible_with_new_height (TUI_DISASM_WIN);
+ if (tui_win_list[win_type] != NULL
+ && tui_win_list[win_type]->is_visible)
+ tui_win_list[win_type]->update_tab_width ();
}
}