]> gitweb.factorcode.org Git - factor.git/commitdiff
ui.gadgets.editors: fix page-up/page-down behavior.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 27 May 2020 18:43:29 +0000 (11:43 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 27 May 2020 18:43:29 +0000 (11:43 -0700)
basis/ui/gadgets/editors/editors.factor

index 26805dfb75d79e0d02e2698d64940aed238bd486..f7db62e93b718b46f9af8bdc9f448925184cc4de 100644 (file)
@@ -570,22 +570,28 @@ TUPLE: multiline-editor < editor ;
 
 <PRIVATE
 
-: page-elt ( editor -- editor element )
-    dup visible-lines 1 - [ 1 ] when-zero <page-elt> ;
+: page-elt ( editor n -- editor element )
+    over visible-lines 1 - min 1 max <page-elt> ;
+
+: prev-page-elt ( editor -- editor element )
+    dup editor-caret first page-elt ;
+
+: next-page-elt ( editor -- editor element )
+    dup [ control-value length ] [ editor-caret first ] bi - page-elt ;
 
 PRIVATE>
 
-: previous-page ( editor -- ) page-elt editor-prev ;
+: previous-page ( editor -- ) prev-page-elt editor-prev ;
 
-: next-page ( editor -- ) page-elt editor-next ;
+: next-page ( editor -- ) next-page-elt editor-next ;
 
 : select-previous-line ( editor -- ) line-elt editor-select-prev ;
 
 : select-next-line ( editor -- ) line-elt editor-select-next ;
 
-: select-previous-page ( editor -- ) page-elt editor-select-prev ;
+: select-previous-page ( editor -- ) prev-page-elt editor-select-prev ;
 
-: select-next-page ( editor -- ) page-elt editor-select-next ;
+: select-next-page ( editor -- ) next-page-elt editor-select-next ;
 
 : insert-newline ( editor -- )
     "\n" swap user-input* drop ;