diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-08-29 23:36:15 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-08-29 23:36:15 -0700 |
commit | a9b3d6ed96c18df8324e89be315e5db8f7b72899 (patch) | |
tree | 35141e75d3d90eb9b7bcee22ee30d06a1e949aa6 | |
parent | 6f1659cfe06be9d1bfaf7474275e0d55a2ff1064 (diff) | |
download | mu-a9b3d6ed96c18df8324e89be315e5db8f7b72899.tar.gz |
2111 - avoid repaint when up/down hit edge of text
-rw-r--r-- | edit.mu | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/edit.mu b/edit.mu index a8781162..861322c5 100644 --- a/edit.mu +++ b/edit.mu @@ -1341,7 +1341,7 @@ recipe insert-new-line-and-indent [ { indent-done?:boolean <- greater-or-equal i, indent break-if indent-done? - insert-at-cursor editor, 32/space, screen + editor, screen, go-render?:boolean <- insert-at-cursor editor, 32/space, screen i <- add i, 1 loop } @@ -1528,8 +1528,8 @@ after +handle-special-character [ tab?:boolean <- equal *c, 9/tab break-unless tab? +insert-character-begin - insert-at-cursor editor, 32/space, screen - insert-at-cursor editor, 32/space, screen + editor, screen, go-render?:boolean <- insert-at-cursor editor, 32/space, screen + editor, screen, go-render?:boolean <- insert-at-cursor editor, 32/space, screen +insert-character-end reply screen/same-as-ingredient:0, editor/same-as-ingredient:1, 1/go-render } @@ -3284,7 +3284,14 @@ after +scroll-down [ left:number <- get *editor, left:offset right:number <- get *editor, right:offset max:number <- subtract right, left + old-top:address:duplex-list <- copy *top-of-screen *top-of-screen <- before-start-of-next-line *top-of-screen, max + no-movement?:boolean <- equal old-top, *top-of-screen + # Hack: this reply doesn't match one of the locations of +scroll-down, directly + # within insert-at-cursor. however, I'm unable to trigger the error.. + # If necessary create a duplicate copy of +scroll-down with the right + # 'reply-if'. + reply-if no-movement?, editor/same-as-ingredient:0, 0/no-more-render ] # takes a pointer into the doubly-linked list, scans ahead at most 'max' @@ -3583,7 +3590,10 @@ d] after +scroll-up [ trace 10, [app], [scroll up] top-of-screen:address:address:duplex-list <- get-address *editor, top-of-screen:offset + old-top:address:duplex-list <- copy *top-of-screen *top-of-screen <- before-previous-line *top-of-screen, editor + no-movement?:boolean <- equal old-top, *top-of-screen + reply-if no-movement?, editor/same-as-ingredient:0, 0/no-more-render ] # takes a pointer into the doubly-linked list, scans back to before start of @@ -4913,9 +4923,10 @@ recipe update-cursor [ after +global-type [ { - redraw-screen??:boolean <- equal *c, 12/ctrl-l - break-unless redraw-screen?? + redraw-screen?:boolean <- equal *c, 12/ctrl-l + break-unless redraw-screen? screen <- render-all screen, env:address:programming-environment-data + sync-screen screen loop +next-event:label } ] |