From c16f1f733b5748211db515fa19dd821065fd6fc7 Mon Sep 17 00:00:00 2001 From: rsc Date: Wed, 9 Jun 2004 14:01:43 +0000 Subject: Buttons 4 and 5. --- src/cmd/acme/acme.c | 12 ++++++++++++ src/cmd/acme/dat.h | 7 ++++++- src/cmd/acme/text.c | 8 ++++++-- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/cmd/acme/acme.c b/src/cmd/acme/acme.c index 8d0413fa..7913eb1c 100644 --- a/src/cmd/acme/acme.c +++ b/src/cmd/acme/acme.c @@ -536,6 +536,18 @@ mousethread(void *v) } goto Continue; } + /* scroll buttons, wheels, etc. */ + if(t->what==Body && w != nil && (m.buttons & (8|16))){ + if(m.buttons & 8) + but = Kscrolloneup; + else + but = Kscrollonedown; + winlock(w, 'M'); + t->eq0 = ~0; + texttype(t, but); + winunlock(w); + goto Continue; + } if(ptinrect(m.xy, t->scrollr)){ if(but){ if(t->what == Columntag) diff --git a/src/cmd/acme/dat.h b/src/cmd/acme/dat.h index 789ce1ca..fe4b0601 100644 --- a/src/cmd/acme/dat.h +++ b/src/cmd/acme/dat.h @@ -529,7 +529,12 @@ int editing; int erroutfd; int messagesize; /* negotiated in 9P version setup */ int globalautoindent; -int nodotfiles; + +enum +{ + Kscrolloneup = KF|0x20, + Kscrollonedown = KF|0x21, +}; Channel *ckeyboard; /* chan(Rune)[10] */ Channel *cplumb; /* chan(Plumbmsg*) */ diff --git a/src/cmd/acme/text.c b/src/cmd/acme/text.c index 37613d80..a69b46fe 100644 --- a/src/cmd/acme/text.c +++ b/src/cmd/acme/text.c @@ -224,8 +224,6 @@ textload(Text *t, uint q0, char *file, int setqid) dbuf = nil; while((n=dirread(fd, &dbuf)) > 0){ for(i=0; ifr.maxlines/3; goto case_Down; + case Kscrollonedown: + n = 1; + goto case_Down; case Kpgdown: n = 2*t->fr.maxlines/3; case_Down: @@ -669,6 +670,9 @@ texttype(Text *t, Rune r) case Kup: n = t->fr.maxlines/3; goto case_Up; + case Kscrolloneup: + n = 2; /* feels like this should be n=1, but that does nothing */ + goto case_Up; case Kpgup: n = 2*t->fr.maxlines/3; case_Up: -- cgit v1.2.3