aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-06-23 20:39:57 -0600
committerTom Tromey <tom@tromey.com>2019-07-17 12:18:51 -0600
commit06210ce428ad74c28fd94f7ea3800b79791cdefa (patch)
treefeb0e94f60bb2db4caf20296412cb0e9bf3eaee8
parent381befeedf9316991d47f4213850545a96593d23 (diff)
downloadbinutils-06210ce428ad74c28fd94f7ea3800b79791cdefa.zip
binutils-06210ce428ad74c28fd94f7ea3800b79791cdefa.tar.gz
binutils-06210ce428ad74c28fd94f7ea3800b79791cdefa.tar.bz2
Introduce can_scroll method
This introduces a "can_scroll" method, removing a spot that explicitly checks a window's type. gdb/ChangeLog 2019-07-17 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.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/tui/tui-command.c7
-rw-r--r--gdb/tui/tui-data.h11
3 files changed, 21 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 701b2c9..28b0b53 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2019-07-17 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.
+
2019-07-17 Tom Tromey <tromey@adacore.com>
* ui-out.h (class ui_out) <field_signed, field_fmt_signed,
diff --git a/gdb/tui/tui-command.c b/gdb/tui/tui-command.c
index 259620f..bd16f80 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 412be1c..6a243c3 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: