mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
b45b7407cd
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.
77 lines
1.7 KiB
C++
77 lines
1.7 KiB
C++
/* Specific command window processing.
|
|
|
|
Copyright (C) 1998-2022 Free Software Foundation, Inc.
|
|
|
|
Contributed by Hewlett-Packard Company.
|
|
|
|
This file is part of GDB.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
#ifndef TUI_TUI_COMMAND_H
|
|
#define TUI_TUI_COMMAND_H
|
|
|
|
#include "tui/tui-data.h"
|
|
|
|
/* The TUI command window. */
|
|
struct tui_cmd_window : public tui_win_info
|
|
{
|
|
tui_cmd_window () = default;
|
|
|
|
DISABLE_COPY_AND_ASSIGN (tui_cmd_window);
|
|
|
|
void refresh_window () override
|
|
{
|
|
}
|
|
|
|
const char *name () const override
|
|
{
|
|
return CMD_NAME;
|
|
}
|
|
|
|
bool can_scroll () const override
|
|
{
|
|
return false;
|
|
}
|
|
|
|
bool can_box () const override
|
|
{
|
|
return false;
|
|
}
|
|
|
|
void resize (int height, int width, int origin_x, int origin_y) override;
|
|
|
|
void make_visible (bool visible) override
|
|
{
|
|
/* The command window can't be made invisible. */
|
|
}
|
|
|
|
int start_line = 0;
|
|
|
|
protected:
|
|
|
|
void do_scroll_vertical (int num_to_scroll) override
|
|
{
|
|
}
|
|
|
|
void do_scroll_horizontal (int num_to_scroll) override
|
|
{
|
|
}
|
|
};
|
|
|
|
/* Refresh the command window. */
|
|
extern void tui_refresh_cmd_win (void);
|
|
|
|
#endif /* TUI_TUI_COMMAND_H */
|