Introduce tui_win_info::update_tab_width
authorTom Tromey <tom@tromey.com>
Tue, 18 Jun 2019 00:48:00 +0000 (18:48 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 25 Jun 2019 13:48:43 +0000 (07:48 -0600)
This introduces a new tui_win_info::update_tab_width method, and
changes the TUI to call it.  This fixes another spot that was checking
the window type.

gdb/ChangeLog
2019-06-25  Tom Tromey  <tom@tromey.com>

* tui/tui-win.c (tui_source_window_base::update_tab_width): New
method.
(update_tab_width): Call update_tab_width method.
* tui/tui-data.h (struct tui_win_info)
(struct tui_source_window_base) <update_tab_width>: New methods.

gdb/ChangeLog
gdb/tui/tui-data.h
gdb/tui/tui-win.c

index 31886634547399cbc74750e0c3957a3774ef33aa..4f7d82bcdefa308f9c65b1fe0c3a9c5b06e951d9 100644 (file)
@@ -1,3 +1,11 @@
+2019-06-25  Tom Tromey  <tom@tromey.com>
+
+       * tui/tui-win.c (tui_source_window_base::update_tab_width): New
+       method.
+       (update_tab_width): Call update_tab_width method.
+       * tui/tui-data.h (struct tui_win_info)
+       (struct tui_source_window_base) <update_tab_width>: New methods.
+
 2019-06-25  Tom Tromey  <tom@tromey.com>
 
        * tui/tui-wingeneral.h (tui_make_window): Change type of "box_it"
index 95c916190cc1ac2ef6194aae5cc084d9325b5166..7030e84d902a55339848603ca8b6cceadd216cc3 100644 (file)
@@ -306,6 +306,11 @@ public:
   /* Compute the maximum height of this window.  */
   virtual int max_height () const;
 
+  /* Called after the tab width has been changed.  */
+  virtual void update_tab_width ()
+  {
+  }
+
   /* Set whether this window is highglighted.  */
   void set_highlight (bool highlight)
   {
@@ -362,6 +367,8 @@ public:
 
   void set_new_height (int height) override;
 
+  void update_tab_width () override;
+
   /* Does the locator belong to this window?  */
   bool m_has_locator = false;
   /* Execution information window.  */
index 22938b41f24f8fabf57bed4c28cac68e4cd29b16..d67f42eaa7769c4fde670631cc2797cb18f0adde 100644 (file)
@@ -923,29 +923,30 @@ unsigned int tui_tab_width = DEFAULT_TAB_LEN;
 
 static unsigned int internal_tab_width = DEFAULT_TAB_LEN;
 
-/* After the tab width is set, call this to update the relevant
-   windows.  */
+/* See tui-data.h.  */
 
-static void
-update_tab_width ()
+void
+tui_source_window_base::update_tab_width ()
 {
   /* We don't really change the height of any windows, but
      calling these 2 functions causes a complete regeneration
      and redisplay of the window's contents, which will take
      the new tab width into account.  */
-  if (tui_win_list[SRC_WIN]
-      && tui_win_list[SRC_WIN]->is_visible)
-    {
-      make_invisible_and_set_new_height (TUI_SRC_WIN,
-                                        TUI_SRC_WIN->height);
-      make_visible_with_new_height (TUI_SRC_WIN);
-    }
-  if (tui_win_list[DISASSEM_WIN]
-      && tui_win_list[DISASSEM_WIN]->is_visible)
+  make_invisible_and_set_new_height (this, height);
+  make_visible_with_new_height (this);
+}
+
+/* After the tab width is set, call this to update the relevant
+   windows.  */
+
+static void
+update_tab_width ()
+{
+  for (int win_type = SRC_WIN; win_type < MAX_MAJOR_WINDOWS; win_type++)
     {
-      make_invisible_and_set_new_height (TUI_DISASM_WIN,
-                                        TUI_DISASM_WIN->height);
-      make_visible_with_new_height (TUI_DISASM_WIN);
+      if (tui_win_list[win_type] != NULL
+         && tui_win_list[win_type]->is_visible)
+       tui_win_list[win_type]->update_tab_width ();
     }
 }