summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/cmd/mothra/libpanel/scrollbar.c10
-rw-r--r--sys/src/cmd/mothra/mothra.c2
2 files changed, 6 insertions, 6 deletions
diff --git a/sys/src/cmd/mothra/libpanel/scrollbar.c b/sys/src/cmd/mothra/libpanel/scrollbar.c
index 22d2a1883..8515d53ff 100644
--- a/sys/src/cmd/mothra/libpanel/scrollbar.c
+++ b/sys/src/cmd/mothra/libpanel/scrollbar.c
@@ -28,11 +28,10 @@ int pl_hitscrollbar(Panel *g, Mouse *m){
size=subpt(g->r.max, g->r.min);
pl_interior(g->state, &ul, &size);
oldstate=g->state;
- if(m->buttons&OUT && m->buttons&7){
- if(m->xy.y<g->r.min.y) m->xy.y=g->r.min.y;
- if(m->xy.y>=g->r.max.y) m->xy.y=g->r.max.y-1;
- if(ptinrect(m->xy, g->r))
- m->buttons&=~OUT;
+ if(!(g->flags & USERFL) && (m->buttons&OUT || !ptinrect(m->xy, g->r))){
+ m->buttons&=~OUT;
+ g->state=UP;
+ goto out;
}
if(sp->dir==HORIZ){
pos=m->xy.x-ul.x;
@@ -71,6 +70,7 @@ int pl_hitscrollbar(Panel *g, Mouse *m){
pos, len);
g->state=UP;
}
+out:
if(oldstate!=g->state) pldraw(g, g->b);
return g->state==DOWN;
}
diff --git a/sys/src/cmd/mothra/mothra.c b/sys/src/cmd/mothra/mothra.c
index aec45f062..497c832e3 100644
--- a/sys/src/cmd/mothra/mothra.c
+++ b/sys/src/cmd/mothra/mothra.c
@@ -179,7 +179,7 @@ void mkpanels(void){
cururl=pllabel(p, PACKE|EXPAND, "---");
plplacelabel(cururl, PLACEW);
p=plgroup(root, PACKN|EXPAND);
- bar=plscrollbar(p, PACKW);
+ bar=plscrollbar(p, PACKW|USERFL);
text=pltextview(p, PACKE|EXPAND, Pt(0, 0), 0, dolink);
plscroll(text, 0, bar);
plgrabkb(cmd);