It turns out ScrollRegion was only handling the first of any messages sent to it. This should have caused more issues than it did, but it looks like it's not common for Neovim to send multiple at a time.
The scrolloff issue wasn't visible with line numbers enabled because in that case more grid_line messages were sent to update the problematic lines (due to their line numbers changing), masking the issue.
Fixes #44.
It turns out
ScrollRegion
was only handling the first of any messages sent to it. This should have caused more issues than it did, but it looks like it's not common for Neovim to send multiple at a time.The scrolloff issue wasn't visible with line numbers enabled because in that case more grid_line messages were sent to update the problematic lines (due to their line numbers changing), masking the issue.