From 5de51db974972ef00b21121b7472075c0222b551 Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Wed, 30 Mar 2016 10:00:05 -0400 Subject: [PATCH] page up: cursor to start if scrolled top already --- editor.coffee | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/editor.coffee b/editor.coffee index a7c3c66..a0bd0a4 100644 --- a/editor.coffee +++ b/editor.coffee @@ -1077,6 +1077,13 @@ class PeachHTML5Editor @kill_cursor() return on_page_up_key: (e) -> + if @wrap2.scrollTop is 0 + return unless @cursor? + new_cursor = first_cursor_position @tree + if new_cursor? + if new_cursor.n isnt @cursor.n or new_cursor.i isnt @cursor.i + @move_cursor new_cursor + return if @cursor? screen_y = @cursor.y - @wrap2.scrollTop scroll_amount = @wrap2_height - breathing_room @@ -1084,18 +1091,17 @@ class PeachHTML5Editor if @cursor? @move_cursor_into_view screen_y + @wrap2.scrollTop on_page_down_key: (e) -> - if @cursor? - screen_y = @cursor.y - @wrap2.scrollTop - scroll_amount = @wrap2_height - breathing_room lowest_scrollpos = @wrap2.scrollHeight - @wrap2_height - if @wrap2.scrollTop is lowest_scrollpos # already at bottom + if @wrap2.scrollTop is lowest_scrollpos return unless @cursor? - # move cursor to bottom new_cursor = last_cursor_position @tree if new_cursor? if new_cursor.n isnt @cursor.n or new_cursor.i isnt @cursor.i @move_cursor new_cursor return + if @cursor? + screen_y = @cursor.y - @wrap2.scrollTop + scroll_amount = @wrap2_height - breathing_room @wrap2.scrollTop = Math.min lowest_scrollpos, @wrap2.scrollTop + scroll_amount if @cursor? @move_cursor_into_view screen_y + @wrap2.scrollTop -- 1.7.10.4