Fix pixel-scroll-precision-mode when point is on a blank line #1926
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When in the point is on a blank line in normal state, scrolling down with
pixel-scroll-precision-mode
enabled "sticks" because Evil ends up invokingline-move
in thepost-command-hook
.line-move
resets vscroll to 0, which undoes the scroll if we scrolled less than a line.Specifically,
evil-normal-post-command
callsevil-adjust-cursor
which callsevil-move-end-of-line
which callsmove-end-of-line
, which finally callsline-move
.This change avoids this issue by avoiding
evil-move-end-of-line
entirely, instead usingbolp
to check if we're already at the beginning of the line.(note: I'm not sure if there were subtle reasons for calling
evil-move-end-of-line
here)Upstream bug report: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=72323. But Evil probably shouldn't be calling
line-move
here anyways.