binutils-gdb/gdb/tui
Tom Tromey 45bbae5c4b Remove flickering from the TUI
In some cases, the TUI flickers when redrawing.  This can be seen
mostly easily when switching layouts.

This patch fixes the problem by exploiting the double buffering that
curses already does.  In some spots, the TUI will now disable flushing
the curses buffers to the screen; and then flush them all at once when
the rendering is complete.

gdb/ChangeLog
2020-01-19  Tom Tromey  <tom@tromey.com>

	* tui/tui.c (tui_show_assembly): Use tui_suppress_output.
	* tui/tui-wingeneral.h (class tui_suppress_output): New.
	(tui_wrefresh): Declare.
	* tui/tui-wingeneral.c (suppress_output): New global.
	(tui_suppress_output, ~tui_suppress_output): New constructor and
	destructor.
	(tui_wrefresh): New function.
	(tui_gen_win_info::refresh_window): Use tui_wrefresh.
	(tui_gen_win_info::make_window): Call wnoutrefresh when needed.
	* tui/tui-regs.h (struct tui_data_window) <no_refresh>: Declare
	method.
	* tui/tui-regs.c (tui_data_window::erase_data_content): Call
	tui_wrefresh.
	(tui_data_window::no_refresh): New method.
	(tui_data_item_window::refresh_window): Call tui_wrefresh.
	(tui_reg_command): Use tui_suppress_output
	* tui/tui-layout.c (tui_set_layout): Use tui_suppress_output.
	* tui/tui-data.h (struct tui_gen_win_info) <no_refresh>: New
	method.
	* tui/tui-command.c (tui_refresh_cmd_win): Call tui_wrefresh.

Change-Id: Icb832ae100b861de3af3307488e636fa928d5c9f
2020-01-19 13:08:49 -07:00
..
ChangeLog-1998-2003
tui-command.c Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui-command.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-data.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-data.h Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui-disasm.c GDB: Fix the overflow in addr/line_is_displayed() 2020-01-06 19:47:20 +00:00
tui-disasm.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-file.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-file.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-hooks.c gdb: add back declarations for _initialize functions 2020-01-13 14:01:38 -05:00
tui-hooks.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-interp.c gdb: add back declarations for _initialize functions 2020-01-13 14:01:38 -05:00
tui-io.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-io.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-layout.c Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui-layout.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-out.c Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-out.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-regs.c Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui-regs.h Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui-source.c gdb/tui: Link source and assembler scrolling .... again 2020-01-09 23:11:47 +00:00
tui-source.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-stack.c gdb: add back declarations for _initialize functions 2020-01-13 14:01:38 -05:00
tui-stack.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-win.c gdb: add back declarations for _initialize functions 2020-01-13 14:01:38 -05:00
tui-win.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui-wingeneral.c Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui-wingeneral.h Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui-winsource.c Make "file" clear TUI source window 2020-01-19 13:08:48 -07:00
tui-winsource.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00
tui.c Remove flickering from the TUI 2020-01-19 13:08:49 -07:00
tui.h Update copyright year range in all GDB files. 2020-01-01 10:20:53 +04:00