]> Sergey Matveev's repositories - nnn.git/commitdiff
Snap to edges in no rollover multiline scroll mode
authorlvgx <l@vgx.fr>
Tue, 29 Sep 2020 14:13:57 +0000 (16:13 +0200)
committerGitHub <noreply@github.com>
Tue, 29 Sep 2020 14:13:57 +0000 (16:13 +0200)
src/nnn.c

index f97ad21c6ad1dec50633911b3b79e16ca9bf1744..de671f312d339d1db108604b7aa68954f91adeb8 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -5972,15 +5972,21 @@ nochange:
                        }
 #if NCURSES_MOUSE_VERSION > 1
                        /* Scroll up */
-                       if (event.bstate == BUTTON4_PRESSED && ndents && (cfg.rollover || cur >= scroll_lines)) {
-                               move_cursor((cur + ndents - scroll_lines) % ndents, 0);
+                       if (event.bstate == BUTTON4_PRESSED && ndents && (cfg.rollover || cur)) {
+                               if(!cfg.rollover && cur < scroll_lines)
+                                       move_cursor(0,0);
+                               else
+                                       move_cursor((cur + ndents - scroll_lines) % ndents, 0);
                                break;
                        }
 
                        /* Scroll down */
                        if (event.bstate == BUTTON5_PRESSED && ndents
-                           && (cfg.rollover || (cur + scroll_lines < ndents))) {
-                               move_cursor((cur + scroll_lines) % ndents, 0);
+                           && (cfg.rollover || (cur != ndents - 1))) {
+                               if(!cfg.rollover && cur >= ndents - scroll_lines)
+                                       move_cursor(ndents-1, 0);
+                               else
+                                       move_cursor((cur + scroll_lines) % ndents, 0);
                                break;
                        }
 #endif