Made mouse-wheel scrolling less drastic. - sam - An updated version of the sam … | |
git clone git://vernunftzentrum.de/sam.git | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 47f7f8ea74866f59c4a5a332f7a3aa3f6ac7654a | |
parent 521228a11d99b58334f00796e284dff8c646add3 | |
Author: Rob King <[email protected]> | |
Date: Fri, 19 Aug 2016 17:22:32 -0500 | |
Made mouse-wheel scrolling less drastic. | |
Wheel-up is now equivalent to a button 1 click in the scroll bar, while | |
wheel-down is equivalent to a button 3 click. | |
Diffstat: | |
samterm/main.c | 8 ++++---- | |
samterm/scroll.c | 14 +++++++------- | |
2 files changed, 11 insertions(+), 11 deletions(-) | |
--- | |
diff --git a/samterm/main.c b/samterm/main.c | |
@@ -135,10 +135,10 @@ main(int argc, char *argv[]) | |
menu3hit(); | |
}else if((mouse.buttons&16)){ | |
flushtyping(0); | |
- center(which, which->origin+which->f.nchars+1); | |
+ scroll(which, 5, 5); | |
}else if((mouse.buttons&8)){ | |
flushtyping(0); | |
- outTsll(Torigin, ((Text *)(which->user1))->tag… | |
+ scroll(which, 4, 4); | |
} | |
mouseunblock(); | |
} | |
@@ -342,13 +342,13 @@ scrorigin(Flayer *l, int but, long p0) | |
Text *t=(Text *)l->user1; | |
switch(but){ | |
- case 1: | |
+ case 1: case 4: | |
outTsll(Torigin, t->tag, l->origin, p0); | |
break; | |
case 2: | |
outTsll(Torigin, t->tag, p0, 1L); | |
break; | |
- case 3: | |
+ case 3: case 5: | |
horigin(t->tag,p0); | |
} | |
} | |
diff --git a/samterm/scroll.c b/samterm/scroll.c | |
@@ -95,16 +95,16 @@ scroll(Flayer *l, int pbut, int but) | |
in = abs(x-mouse.xy.x)<=FLSCROLLWID/2; | |
if(oin != in) | |
scrflip(l, r); | |
- if(in){ | |
+ if(in || but > 3){ | |
oy = y; | |
my = mouse.xy.y; | |
if(my < s.min.y) | |
my = s.min.y; | |
if(my >= s.max.y) | |
my = s.max.y; | |
- if(!eqpt(mouse.xy, Pt(x, my))) | |
+ if(!eqpt(mouse.xy, Pt(x, my)) && but <= 3) | |
cursorset(Pt(x, my)); | |
- if(but == 1){ | |
+ if(but == 1 || but == 4){ | |
p0 = l->origin-frcharofpt(&l->f, Pt(s.max.x, m… | |
rt = scrpos(l->scroll, p0, p0+l->f.nchars, tot… | |
y = rt.min.y; | |
@@ -112,7 +112,7 @@ scroll(Flayer *l, int pbut, int but) | |
y = my; | |
if(y > s.max.y-2) | |
y = s.max.y-2; | |
- }else if(but == 3){ | |
+ }else if(but == 3 || but == 5){ | |
p0 = l->origin+frcharofpt(&l->f, Pt(s.max.x, m… | |
rt = scrpos(l->scroll, p0, p0+l->f.nchars, tot… | |
y = rt.min.y; | |
@@ -124,18 +124,18 @@ scroll(Flayer *l, int pbut, int but) | |
} | |
} | |
}while(button(pbut)); | |
- if(in){ | |
+ if(in || but > 3){ | |
h = s.max.y-s.min.y; | |
scrflip(l, r); | |
p0 = 0; | |
- if(but == 1) | |
+ if(but == 1 || but == 4) | |
p0 = (long)(my-s.min.y)/l->f.fheight+1; | |
else if(but == 2){ | |
if(tot > 1024L*1024L) | |
p0 = ((tot>>10)*(y-s.min.y)/h)<<10; | |
else | |
p0 = tot*(y-s.min.y)/h; | |
- }else if(but == 3){ | |
+ }else if(but == 3 || but == 5){ | |
p0 = l->origin+frcharofpt(&l->f, Pt(s.max.x, my)); | |
if(p0 > tot) | |
p0 = tot; |