forked from Imagelibrary/binutils-gdb
Update TUI window title when changed
I wrote a TUI window in Python, and I noticed that setting its title did not result in a refresh, so the new title did not appear. This patch corrects this problem.
This commit is contained in:
@@ -531,7 +531,7 @@ gdbpy_tui_set_title (PyObject *self, PyObject *newvalue, void *closure)
|
||||
if (value == nullptr)
|
||||
return -1;
|
||||
|
||||
win->window->title = value.get ();
|
||||
win->window->set_title (value.get ());
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -54,6 +54,10 @@ Term::check_contents "error message after trying to delete title" \
|
||||
Term::check_contents "title is unchanged" \
|
||||
"This Is The Title"
|
||||
|
||||
Term::command "python change_window_title ()"
|
||||
Term::check_contents "test new title" \
|
||||
"New Title"
|
||||
|
||||
Term::resize 51 51
|
||||
# Remember that a resize request actually does two resizes...
|
||||
Term::check_contents "Window was updated" "Test: 2"
|
||||
|
||||
@@ -53,4 +53,9 @@ def failwin(win):
|
||||
raise RuntimeError("Whoops")
|
||||
|
||||
|
||||
# Change the title of the window.
|
||||
def change_window_title():
|
||||
the_window.win.title = "New Title"
|
||||
|
||||
|
||||
gdb.register_window_type("fail", failwin)
|
||||
|
||||
@@ -152,6 +152,17 @@ tui_prev_win (struct tui_win_info *cur_win)
|
||||
return *iter;
|
||||
}
|
||||
|
||||
/* See tui-data.h. */
|
||||
|
||||
void
|
||||
tui_win_info::set_title (const char *new_title)
|
||||
{
|
||||
if (title != new_title)
|
||||
{
|
||||
title = new_title;
|
||||
check_and_display_highlight_if_needed ();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
tui_win_info::rerender ()
|
||||
|
||||
@@ -146,6 +146,10 @@ public:
|
||||
|
||||
void check_and_display_highlight_if_needed ();
|
||||
|
||||
/* A helper function to change the title and then redraw the
|
||||
surrounding box, if needed. */
|
||||
void set_title (const char *new_title);
|
||||
|
||||
/* Window handle. */
|
||||
std::unique_ptr<WINDOW, curses_deleter> handle;
|
||||
/* Window width. */
|
||||
|
||||
Reference in New Issue
Block a user