diff options
author | Tom Tromey <tom@tromey.com> | 2019-06-17 18:48:00 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-06-25 07:48:43 -0600 |
commit | d83f1fe65da075aa08ac7d6b6ef3508587c94600 (patch) | |
tree | 75a5b57bf86f3695bfff08926a2769e95474929d /gdb/tui | |
parent | 17374de40e7be36e4eb27d29bb8aac89586ce4a1 (diff) | |
download | binutils-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.h | 7 | ||||
-rw-r--r-- | gdb/tui/tui-win.c | 33 |
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 (); } } |