diff options
Diffstat (limited to 'appl')
| -rw-r--r-- | appl/acme/acme.b | 13 | ||||
| -rw-r--r-- | appl/acme/text.b | 14 |
2 files changed, 26 insertions, 1 deletions
diff --git a/appl/acme/acme.b b/appl/acme/acme.b index 13f9a724..6150d202 100644 --- a/appl/acme/acme.b +++ b/appl/acme/acme.b @@ -570,6 +570,19 @@ mousetask() row.qlock.unlock(); break; } + if(w != nil && (mouse.buttons &(8|16))){ + if(mouse.buttons & 8) + but = Dat->Kscrollup; + else + but = Dat->Kscrolldown; + w.lock('M'); + t.eq0 = ~0; + t.typex(but, 0); + w.unlock(); + bflush(); + row.qlock.unlock(); + break; + } if(mouse.xy.in(t.scrollr)){ if(but){ if(t.what == Columntag) diff --git a/appl/acme/text.b b/appl/acme/text.b index c374bf8d..953a08ea 100644 --- a/appl/acme/text.b +++ b/appl/acme/text.b @@ -689,7 +689,19 @@ Text.typex(t : self ref Text, r : int, echomode : int) } if(t.what!=Body && r=='\n') return; - case(r){ + case r { + Dat->Kscrolldown=> + if(t.what == Body){ + q0 = t.org+frcharofpt(t.frame, (t.frame.r.min.x, t.frame.r.min.y+2*t.frame.font.height)); + t.setorigin(q0, FALSE); + } + return; + Dat->Kscrollup=> + if(t.what == Body){ + q0 = t.backnl(t.org, 4); + t.setorigin(q0, FALSE); + } + return; Kdown or Keyboard->Down => n = t.frame.maxlines/2; q0 = t.org+frcharofpt(t.frame, (t.frame.r.min.x, t.frame.r.min.y+n*t.frame.font.height)); |
