ref: aba0c7fceac419c426da85b3f5d4bfe82d410e00
parent: a63472edf570d22cf5829b063de083a197e34c3a
author: phil9 <telephil9@gmail.com>
date: Wed Apr 6 11:29:41 EDT 2022
mothra: enable mousewheel scrolling in history list In the history list, scrolling was only possible using the scrollbar but not the mousewheel like in the text panel.
--- a/sys/src/cmd/mothra/mothra.c
+++ b/sys/src/cmd/mothra/mothra.c
@@ -140,11 +140,11 @@
return 0;
}
-void scrolltext(int dy, int whence)
+void scrollpanel(Panel *p, int dy, int whence)
{
Scroll s;
- s = plgetscroll(text);
+ s = plgetscroll(p);
switch(whence){
case 0:
s.pos.y = dy;
@@ -160,7 +160,7 @@
s.pos.y = s.size.y;
if(s.pos.y < 0)
s.pos.y = 0;
- plsetscroll(text, s);
+ plsetscroll(p, s);
}
void sidescroll(int dx, int whence)
@@ -404,22 +404,22 @@
plkeyboard(e.kbdc);
break;
case Khome:
- scrolltext(0, 0);
+ scrollpanel(text, 0, 0);
break;
case Kup:
- scrolltext(-text->size.y/4, 1);
+ scrollpanel(text, -text->size.y/4, 1);
break;
case Kpgup:
- scrolltext(-text->size.y/2, 1);
+ scrollpanel(text, -text->size.y/2, 1);
break;
case Kdown:
- scrolltext(text->size.y/4, 1);
+ scrollpanel(text, text->size.y/4, 1);
break;
case Kpgdown:
- scrolltext(text->size.y/2, 1);
+ scrollpanel(text, text->size.y/2, 1);
break;
case Kend:
- scrolltext(-text->size.y, 2);
+ scrollpanel(text, -text->size.y, 2);
break;
case Kack:
search();
@@ -438,11 +438,18 @@
break;
case Emouse:
mouse=e.mouse;
+ if(mouse.buttons & (8|16) && ptinrect(mouse.xy, list->r) && defdisplay){
+ if(mouse.buttons & 8)
+ scrollpanel(list, list->r.min.y - mouse.xy.y, 1);
+ else
+ scrollpanel(list, mouse.xy.y - list->r.min.y, 1);
+ break;
+ }
if(mouse.buttons & (8|16) && ptinrect(mouse.xy, text->r)){
if(mouse.buttons & 8)
- scrolltext(text->r.min.y - mouse.xy.y, 1);
+ scrollpanel(text, text->r.min.y - mouse.xy.y, 1);
else
- scrolltext(mouse.xy.y - text->r.min.y, 1);
+ scrollpanel(text, mouse.xy.y - text->r.min.y, 1);
break;
}
plmouse(root, &mouse);