summaryrefslogtreecommitdiff
path: root/src/normal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/normal.c')
-rw-r--r--src/normal.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/src/normal.c b/src/normal.c
index 79f168617..5000f53e5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1930,11 +1930,8 @@ check_scrollbind(linenr_T topline_diff, long leftcol_diff)
}
// do the horizontal scroll
- if (want_hor && curwin->w_leftcol != tgt_leftcol)
- {
- curwin->w_leftcol = tgt_leftcol;
- leftcol_changed();
- }
+ if (want_hor)
+ (void)set_leftcol(tgt_leftcol);
}
// reset current-window
@@ -2458,7 +2455,7 @@ scroll_redraw(int up, long count)
scrollup(count, TRUE);
else
scrolldown(count, TRUE);
- if (get_scrolloff_value())
+ if (get_scrolloff_value() > 0)
{
// Adjust the cursor position for 'scrolloff'. Mark w_topline as
// valid, otherwise the screen jumps back at the end of the file.
@@ -2734,28 +2731,19 @@ nv_zet(cmdarg_T *cap)
case 'h':
case K_LEFT:
if (!curwin->w_p_wrap)
- {
- if ((colnr_T)cap->count1 > curwin->w_leftcol)
- curwin->w_leftcol = 0;
- else
- curwin->w_leftcol -= (colnr_T)cap->count1;
- leftcol_changed();
- }
+ (void)set_leftcol((colnr_T)cap->count1 > curwin->w_leftcol
+ ? 0 : curwin->w_leftcol - (colnr_T)cap->count1);
break;
- // "zL" - scroll screen left half-page
+ // "zL" - scroll window left half-page
case 'L': cap->count1 *= curwin->w_width / 2;
// FALLTHROUGH
- // "zl" - scroll screen to the left
+ // "zl" - scroll window to the left if not wrapping
case 'l':
case K_RIGHT:
if (!curwin->w_p_wrap)
- {
- // scroll the window left
- curwin->w_leftcol += (colnr_T)cap->count1;
- leftcol_changed();
- }
+ (void)set_leftcol(curwin->w_leftcol + (colnr_T)cap->count1);
break;
// "zs" - scroll screen, cursor at the start