This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 01/61] Introduce can_scroll method
- From: Tom Tromey <tom at tromey dot com>
- To: gdb-patches at sourceware dot org
- Cc: Tom Tromey <tom at tromey dot com>
- Date: Thu, 4 Jul 2019 11:02:11 -0600
- Subject: [PATCH 01/61] Introduce can_scroll method
- References: <20190704170311.15982-1-tom@tromey.com>
This introduces a "can_scroll" method, removing a spot that explicitly
checks a window's type.
2019-07-04 Tom Tromey <tom@tromey.com>
* tui/tui-data.h (struct tui_win_info) <can_scroll>: New method.
(struct tui_cmd_window) <can_scroll>: New method.
* tui/tui-command.c (tui_dispatch_ctrl_char): Use can_scroll
method.
---
gdb/ChangeLog | 7 +++++++
gdb/tui/tui-command.c | 7 +++----
gdb/tui/tui-data.h | 11 +++++++++++
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/gdb/tui/tui-command.c b/gdb/tui/tui-command.c
index 259620f7ce7..bd16f801d26 100644
--- a/gdb/tui/tui-command.c
+++ b/gdb/tui/tui-command.c
@@ -48,10 +48,9 @@ tui_dispatch_ctrl_char (unsigned int ch)
if (ch == '\f')
tui_refresh_all_win ();
- /* If the command window has the logical focus, or no-one does
- assume it is the command window; in this case, pass the character
- on through and do nothing here. */
- if (win_info == NULL || win_info == TUI_CMD_WIN)
+ /* If no window has the focus, or if the focus window can't scroll,
+ just pass the character through. */
+ if (win_info == NULL || !win_info->can_scroll ())
return ch;
switch (ch)
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 412be1ce756..6a243c3d2f9 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -352,6 +352,12 @@ public:
void left_scroll (int num_to_scroll);
void right_scroll (int num_to_scroll);
+ /* Return true if this window can be scrolled, false otherwise. */
+ virtual bool can_scroll () const
+ {
+ return true;
+ }
+
/* Can this window ever be highlighted? */
bool can_highlight = true;
@@ -524,6 +530,11 @@ struct tui_cmd_window : public tui_win_info
return CMD_NAME;
}
+ bool can_scroll () const override
+ {
+ return false;
+ }
+
int start_line = 0;
protected:
--
2.17.2