gdb/tui: relax restrictions on window max height and width
This commit removes some arbitrary adjustments made in tui_cmd_window::max_height, tui_win_info::max_height, and tui_win_info::max_width. These member functions all subtract some constant from the theoretical maximum height or width. I've looked back through the history a little and can see no real reason why these adjustments should be needed, with these adjustments removed all the existing tui tests still pass. However, retaining these restrictions causes some bugs, consider: (gdb) tui new-layout hsrc {-horizontal src 1 cmd 1} 1 When this layout is selected with current master, gdb will leave a 4 line gap at the bottom of the terminal. The problem is that the maximum height is restricted, for the cmd window, to 4 less than the terminal height. By removing this restriction gdb is able to size the windows to the complete terminal height, and the layout is done correctly. This 4 line restriction is also what prevents this layout from working correctly: (gdb) tui new-layout conly cmd 1 Previously, this layout would present a cmd window only, but there would be a 4 line gap at the bottom of the terminal. This issue was mentioned in an earlier commit in this series (when a different bug was fixed), but with this commit, the above layout now correctly fills the terminal. The associated test is updated. After removing the adjustment in tui_cmd_window::max_height, the implementation is now the same as the implementation in the parent class tui_win_info, so I've completely removed the max_height call from tui_cmd_window.
This commit is contained in:
parent
b1ac644a05
commit
b45b7407cd
4 changed files with 5 additions and 11 deletions
|
@ -76,6 +76,8 @@ set layouts \
|
|||
"21.*return 0.*$hex <main>"] \
|
||||
[list example4 "src 1 status 0 {-horizontal cmd 1 regs 1} 1" \
|
||||
{{0 0 80 11} {40 12 40 12}} ""] \
|
||||
[list example5 "{-horizontal src 1 cmd 1} 1 status 0" \
|
||||
{{0 0 40 23}} ""] \
|
||||
[list cmd_only "cmd 1" {} ""]]
|
||||
|
||||
# Helper function to verify a list of boxes.
|
||||
|
@ -136,7 +138,7 @@ foreach_with_prefix layout $layouts {
|
|||
Term::check_region_contents "info win output" \
|
||||
0 0 80 24 [multi_line "info win\\s+" \
|
||||
"Name\\s+Lines\\s+Columns\\s+Focus\\s+" \
|
||||
"cmd\\s+20\\s+80\\s+\\(has focus\\)\\s+" \
|
||||
"cmd\\s+24\\s+80\\s+\\(has focus\\)\\s+" \
|
||||
"$gdb_prompt\\s+"]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,12 +31,6 @@
|
|||
|
||||
/* See tui-command.h. */
|
||||
|
||||
int
|
||||
tui_cmd_window::max_height () const
|
||||
{
|
||||
return tui_term_height () - 4;
|
||||
}
|
||||
|
||||
void
|
||||
tui_cmd_window::resize (int height_, int width_, int origin_x, int origin_y)
|
||||
{
|
||||
|
|
|
@ -31,8 +31,6 @@ struct tui_cmd_window : public tui_win_info
|
|||
|
||||
DISABLE_COPY_AND_ASSIGN (tui_cmd_window);
|
||||
|
||||
int max_height () const override;
|
||||
|
||||
void refresh_window () override
|
||||
{
|
||||
}
|
||||
|
|
|
@ -955,7 +955,7 @@ tui_set_win_width_command (const char *arg, int from_tty)
|
|||
int
|
||||
tui_win_info::max_height () const
|
||||
{
|
||||
return tui_term_height () - 2;
|
||||
return tui_term_height ();
|
||||
}
|
||||
|
||||
/* See tui-data.h. */
|
||||
|
@ -963,7 +963,7 @@ tui_win_info::max_height () const
|
|||
int
|
||||
tui_win_info::max_width () const
|
||||
{
|
||||
return tui_term_width () - 2;
|
||||
return tui_term_width ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Reference in a new issue