aboutsummaryrefslogtreecommitdiff
path: root/gdb/tui
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/tui')
-rw-r--r--gdb/tui/tui-data.c2
-rw-r--r--gdb/tui/tui-stack.c16
2 files changed, 18 insertions, 0 deletions
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index c51bd11..f5a9823 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -26,6 +26,7 @@
#include "tui/tui-win.h"
#include "tui/tui-wingeneral.h"
#include "tui/tui-winsource.h"
+#include "tui/tui-stack.h"
#include "gdb_curses.h"
#include <algorithm>
@@ -69,6 +70,7 @@ tui_set_win_focus_to (struct tui_win_info *win_info)
tui_unhighlight_win (win_with_focus);
win_with_focus = win_info;
tui_highlight_win (win_info);
+ tui_show_locator_content ();
}
}
diff --git a/gdb/tui/tui-stack.c b/gdb/tui/tui-stack.c
index 723d626..8bf65ea 100644
--- a/gdb/tui/tui-stack.c
+++ b/gdb/tui/tui-stack.c
@@ -106,6 +106,12 @@ tui_locator_window::make_status_line () const
const char *pc_buf = pc_out.c_str ();
int pc_width = pc_out.size ();
+ /* Width of the field showing the window with current focus. For a window
+ named "src" we show "(src)". */
+ int focus_width = (tui_win_with_focus () != nullptr
+ ? 1 + strlen (tui_win_with_focus ()->name ()) + 1
+ : 0);
+
/* First determine the amount of proc name width we have available.
The +1 are for a space separator between fields. */
proc_width = (status_size
@@ -116,6 +122,9 @@ tui_locator_window::make_status_line () const
- (PC_PREFIX.size () + pc_width + 1)
- (tui_current_key_mode == TUI_SINGLE_KEY_MODE
? (SINGLE_KEY.size () + 1)
+ : 0)
+ - (focus_width > 0
+ ? focus_width + 1
: 0));
/* If there is no room to print the function name, try by removing
@@ -159,6 +168,13 @@ tui_locator_window::make_status_line () const
string.puts (" ");
}
+ if (tui_win_with_focus () != nullptr)
+ {
+ string.puts ("(");
+ string.puts (tui_win_with_focus ()->name ());
+ string.puts (") ");
+ }
+
/* Procedure/class name. */
if (proc_width > 0)
{