From b34705bf5fd807203b9cb07d91755bd09d808d18 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Mon, 14 Jul 2014 13:54:15 +0200 Subject: api/window_set_cursor: make sure cursor line is visible. Previously, the cursor could be left outside the visible range if window is not the current window --- src/nvim/move.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/nvim/move.c') diff --git a/src/nvim/move.c b/src/nvim/move.c index 2118f58f7e..c43fa1d09d 100644 --- a/src/nvim/move.c +++ b/src/nvim/move.c @@ -34,6 +34,7 @@ #include "nvim/popupmnu.h" #include "nvim/screen.h" #include "nvim/strings.h" +#include "nvim/window.h" typedef struct { linenr_T lnum; /* line number */ @@ -314,6 +315,17 @@ void update_topline(void) p_so = save_so; } +/* + * Update win->w_topline to move the cursor onto the screen. + */ +void update_topline_win(win_T* win) +{ + win_T *save_curwin; + switch_win(&save_curwin, NULL, win, NULL, true); + update_topline(); + restore_win(save_curwin, NULL, true); +} + /* * Return the scrolljump value to use for the current window. * When 'scrolljump' is positive use it as-is. -- cgit