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.
This commit is contained in:
parent
01aeb396d0
commit
cf82af058d
@ -1,3 +1,12 @@
|
||||
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
|
||||
|
@ -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 ());
|
||||
|
@ -48,15 +48,12 @@ tui_gen_win_info::refresh_window ()
|
||||
void
|
||||
tui_data_window::refresh_window ()
|
||||
{
|
||||
if (!regs_content.empty ())
|
||||
{
|
||||
for (auto &&win : regs_content)
|
||||
{
|
||||
if (win != NULL)
|
||||
win->refresh_window ();
|
||||
}
|
||||
}
|
||||
tui_gen_win_info::refresh_window ();
|
||||
for (auto &&win : regs_content)
|
||||
{
|
||||
if (win != NULL)
|
||||
win->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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user