This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 01/61] Introduce can_scroll method


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]