commit 6f0ed2075c502e346ff219628cb102cd33581cf5
parent dd08b638c1e30fd3ef04e7ad8ec22c955a500ffc
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Tue, 24 Jan 2017 21:51:23 -0600
softwrap: save and restore firstcolumn when copying text
Copying text involves first cutting it and then quickly pasting it back.
However, cutting the text may change firstcolumn if the mark is offscreen.
To keep the viewport unchanged, copy_text() has to save and restore not
just edittop, but firstcolumn as well.
Diffstat:
1 file changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/cut.c b/src/cut.c
@@ -225,6 +225,7 @@ void do_copy_text(void)
/* Remember the current viewport and cursor position. */
ssize_t is_edittop_lineno = openfile->edittop->lineno;
+ size_t is_firstcolumn = openfile->firstcolumn;
ssize_t is_current_lineno = openfile->current->lineno;
size_t is_current_x = openfile->current_x;
@@ -239,6 +240,7 @@ void do_copy_text(void)
if (mark_set) {
/* Restore the viewport and cursor position. */
openfile->edittop = fsfromline(is_edittop_lineno);
+ openfile->firstcolumn = is_firstcolumn;
openfile->current = fsfromline(is_current_lineno);
openfile->current_x = is_current_x;
}