fix(ui): ext_cmdline should not move cursor to curwin

Problem:  The ext_cmdline cursor position on the screen seems to rely on
          an implicit assumption that the event listener implements a
          cmdline window that is made the current window which is
          problematic (e.g. breaks 'incsearch' in the actual current
          window).
Solution: Remove this assumption and allow nvim_win_set_cursor() to move
          the cursor on the screen to a non-current window (previous
          commit).
This commit is contained in:
Luuk van Baal
2024-03-15 00:39:44 +01:00
parent c971f538ab
commit d41b8d4758
2 changed files with 25 additions and 3 deletions

View File

@@ -767,7 +767,7 @@ static uint8_t *command_line_enter(int firstc, int count, int indent, bool clear
}
setmouse();
ui_cursor_shape(); // may show different cursor shape
setcursor();
TryState tstate;
Error err = ERROR_INIT;
@@ -927,7 +927,6 @@ static uint8_t *command_line_enter(int firstc, int count, int indent, bool clear
}
may_trigger_modechanged();
setmouse();
ui_cursor_shape(); // may show different cursor shape
sb_text_end_cmdline();
theend:
@@ -3859,7 +3858,6 @@ void cursorcmd(void)
if (ccline.redraw_state < kCmdRedrawPos) {
ccline.redraw_state = kCmdRedrawPos;
}
setcursor();
return;
}
@@ -4553,6 +4551,7 @@ static int open_cmdwin(void)
State = save_State;
may_trigger_modechanged();
setmouse();
setcursor();
return cmdwin_result;
}