aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/move.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2014-07-14 13:54:15 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2014-11-01 12:04:47 +0100
commitb34705bf5fd807203b9cb07d91755bd09d808d18 (patch)
tree661c492d0db4a4ab7ad0722bcc3f8f29d94e3968 /src/nvim/move.c
parent591391b9bc9a28fc1052d6fb22e297bca32555f7 (diff)
downloadrneovim-b34705bf5fd807203b9cb07d91755bd09d808d18.tar.gz
rneovim-b34705bf5fd807203b9cb07d91755bd09d808d18.tar.bz2
rneovim-b34705bf5fd807203b9cb07d91755bd09d808d18.zip
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
Diffstat (limited to 'src/nvim/move.c')
-rw-r--r--src/nvim/move.c12
1 files changed, 12 insertions, 0 deletions
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 */
@@ -315,6 +316,17 @@ void update_topline(void)
}
/*
+ * 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.
* When 'scrolljump' is negative use it as a percentage of the window height.