From d4669c0fc75ad5ad2e99748f9307b5038955f9d3 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 12 Nov 2019 17:15:12 -0700 Subject: [PATCH] Remove some unnecessary focus switches A couple of lower-level utility functions can change the TUI focus. This seems incorrect to me -- focus switches should only be done either by explicit user request, or ass a side effect of changing the layout. gdb/ChangeLog 2019-12-20 Tom Tromey * tui/tui-winsource.c (tui_source_window_base::update_source_window_as_is): Don't switch focus. * tui/tui-disasm.c (tui_show_disassem): Don't switch focus. Change-Id: I0a5bb8a407cf8d52e2fd23b0598eb9bce56b1251 --- gdb/ChangeLog | 6 ++++++ gdb/tui/tui-disasm.c | 7 ------- gdb/tui/tui-winsource.c | 5 ----- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9ac1430ee0b..0ef7b0c63b0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2019-12-20 Tom Tromey + + * tui/tui-winsource.c + (tui_source_window_base::update_source_window_as_is): Don't switch focus. + * tui/tui-disasm.c (tui_show_disassem): Don't switch focus. + 2019-12-20 Tom Tromey * tui/tui-winsource.h (struct tui_source_window_base) diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c index 63d581bd683..11c8b30d615 100644 --- a/gdb/tui/tui-disasm.c +++ b/gdb/tui/tui-disasm.c @@ -260,7 +260,6 @@ void tui_show_disassem (struct gdbarch *gdbarch, CORE_ADDR start_addr) { struct symtab *s = find_pc_line_symtab (start_addr); - struct tui_win_info *win_with_focus = tui_win_with_focus (); struct tui_line_or_address val; gdb_assert (TUI_DISASM_WIN != nullptr && TUI_DISASM_WIN->is_visible ()); @@ -268,12 +267,6 @@ tui_show_disassem (struct gdbarch *gdbarch, CORE_ADDR start_addr) val.loa = LOA_ADDRESS; val.u.addr = start_addr; TUI_DISASM_WIN->update_source_window (gdbarch, s, val); - - /* If the focus was in the src win, put it in the asm win, if the - source view isn't split. */ - if (tui_current_layout () != SRC_DISASSEM_COMMAND - && win_with_focus == TUI_SRC_WIN) - tui_set_win_focus_to (TUI_DISASM_WIN); } void diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index fe1eb8fc333..72fbd46c7ef 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -201,11 +201,6 @@ tui_source_window_base::update_source_window_as_is sal.symtab = s; sal.pspace = SYMTAB_PSPACE (s); set_current_source_symtab_and_line (sal); - /* If the focus was in the asm win, put it in the src win if - we don't have a split layout. */ - if (tui_win_with_focus () == TUI_DISASM_WIN - && tui_current_layout () != SRC_DISASSEM_COMMAND) - tui_set_win_focus_to (this); } } } -- 2.30.2