aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2015-01-16 17:46:12 +0200
committerEli Zaretskii <eliz@gnu.org>2015-01-16 17:46:12 +0200
commitcb86fcc13bea494007a103424c8a61f1cb372717 (patch)
treeabce8502c89dff86afe21049ed510dd244f1ad05
parentbf555842fccfc0e2cdc4a2f329df6358f991732c (diff)
downloadgdb-cb86fcc13bea494007a103424c8a61f1cb372717.zip
gdb-cb86fcc13bea494007a103424c8a61f1cb372717.tar.gz
gdb-cb86fcc13bea494007a103424c8a61f1cb372717.tar.bz2
Make the change of tab size in TUI mode effective immediately
gdb/ChangeLog: 2015-01-16 Eli Zaretskii <eliz@gnu.org> * tui/tui-win.c (tui_set_tab_width_command): Delete and recreate the source and the disassembly windows, to show the effect of the changed tab size immediately.
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/tui/tui-win.c22
2 files changed, 24 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ae82f49..661f9b6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -2,6 +2,9 @@
* tui/tui-win.c (tui_scroll_left_command, tui_scroll_right_command):
Doc fix.
+ (tui_set_tab_width_command): Delete and recreate the source and
+ the disassembly windows, to show the effect of the changed tab
+ size immediately.
* tui/tui-data.h (LINE_PREFIX): Make shorter
(MAX_PID_WIDTH): Enlarge from 14 to 19, to leave enough space for
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 0d155fb..96fa801 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -1002,7 +1002,27 @@ tui_set_tab_width_command (char *arg, int from_tty)
ts = atoi (arg);
if (ts > 0)
- tui_set_default_tab_len (ts);
+ {
+ tui_set_default_tab_len (ts);
+ /* 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]->generic.is_visible)
+ {
+ make_invisible_and_set_new_height (TUI_SRC_WIN,
+ TUI_SRC_WIN->generic.height);
+ make_visible_with_new_height (TUI_SRC_WIN);
+ }
+ if (tui_win_list[DISASSEM_WIN]
+ && tui_win_list[DISASSEM_WIN]->generic.is_visible)
+ {
+ make_invisible_and_set_new_height (TUI_DISASM_WIN,
+ TUI_DISASM_WIN->generic.height);
+ make_visible_with_new_height (TUI_DISASM_WIN);
+ }
+ }
else
warning (_("Tab widths greater than 0 must be specified."));
}