aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-06-28 23:32:05 -0600
committerTom Tromey <tom@tromey.com>2019-07-17 12:19:11 -0600
commitcf82af058d2f1488d8f8a096d7e3b76d1d5a4f46 (patch)
treeb132b125d3a4ec0227664a8a0343e57be99160c4
parent01aeb396d0e7a2d76f5f2391a30328dcdd5bed1e (diff)
downloadbinutils-cf82af058d2f1488d8f8a096d7e3b76d1d5a4f46.zip
binutils-cf82af058d2f1488d8f8a096d7e3b76d1d5a4f46.tar.gz
binutils-cf82af058d2f1488d8f8a096d7e3b76d1d5a4f46.tar.bz2
Remove TUI data window special case
The TUI has a couple of special cases for updating the data window: one in tui_rl_other_windowand one in tui_set_focus_command. As part of the project to remove references to globals, I wanted to remove these calls; but when I did, some simple operations (like "C-x o") would cause the register window to blank. This fixes the underlying problem by arranging for the data window's refresh_window method to call the superclass method first, and then to refresh the child windows. Then the special cases can be removed. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui.c (tui_rl_other_window): Update. * tui/tui-wingeneral.c (tui_data_window::refresh_window): Call superclass method first. Always iterate over regs_content. (tui_unhighlight_win, tui_highlight_win): Use refresh_window method. * tui/tui-win.c (tui_set_focus_command): Update.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/tui/tui-win.c2
-rw-r--r--gdb/tui/tui-wingeneral.c15
-rw-r--r--gdb/tui/tui.c2
4 files changed, 15 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1467352..97d5e85 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
2019-07-17 Tom Tromey <tom@tromey.com>
+ * tui/tui.c (tui_rl_other_window): Update.
+ * tui/tui-wingeneral.c (tui_data_window::refresh_window): Call
+ superclass method first. Always iterate over regs_content.
+ (tui_unhighlight_win, tui_highlight_win): Use refresh_window
+ method.
+ * tui/tui-win.c (tui_set_focus_command): Update.
+
+2019-07-17 Tom Tromey <tom@tromey.com>
+
* tui/tui-win.c (tui_set_focus_command): Rename from
tui_set_focus. Call tui_enable.
(tui_set_focus_command): Remove.
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 083f046..9d9d9a5 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -857,8 +857,6 @@ The window name specified must be valid and visible.\n"));
keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
}
- if (TUI_DATA_WIN && TUI_DATA_WIN->is_visible)
- TUI_DATA_WIN->refresh_all ();
xfree (buf_ptr);
printf_filtered (_("Focus set to %s window.\n"),
tui_win_with_focus ()->name ());
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index 2902b80..dc008cd 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -48,15 +48,12 @@ tui_gen_win_info::refresh_window ()
void
tui_data_window::refresh_window ()
{
- if (!regs_content.empty ())
+ tui_gen_win_info::refresh_window ();
+ for (auto &&win : regs_content)
{
- for (auto &&win : regs_content)
- {
- if (win != NULL)
- win->refresh_window ();
- }
+ if (win != NULL)
+ win->refresh_window ();
}
- tui_gen_win_info::refresh_window ();
}
/* Function to delete the curses window, checking for NULL. */
@@ -108,7 +105,7 @@ tui_unhighlight_win (struct tui_win_info *win_info)
&& win_info->handle != NULL)
{
box_win (win_info, NO_HILITE);
- wrefresh (win_info->handle);
+ win_info->refresh_window ();
win_info->set_highlight (false);
}
}
@@ -122,7 +119,7 @@ tui_highlight_win (struct tui_win_info *win_info)
&& win_info->handle != NULL)
{
box_win (win_info, HILITE);
- wrefresh (win_info->handle);
+ win_info->refresh_window ();
win_info->set_highlight (true);
}
}
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 693c2ff..ee2c355 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -236,8 +236,6 @@ tui_rl_other_window (int count, int key)
if (win_info)
{
tui_set_win_focus_to (win_info);
- if (TUI_DATA_WIN && TUI_DATA_WIN->is_visible)
- TUI_DATA_WIN->refresh_all ();
keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
}
return 0;