summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rio/wind.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-05-14 00:17:07 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-05-14 00:17:07 +0200
commit20fe277f38a161b00d2425994c9db536945620bc (patch)
tree79b7dfb1b5b6b0241c2b82a6c7ece67d8c596d6f /sys/src/cmd/rio/wind.c
parent24e73840072b4214b3c5e2167a85bdc408fd3b03 (diff)
revert previous commit, not ready yet
Diffstat (limited to 'sys/src/cmd/rio/wind.c')
-rw-r--r--sys/src/cmd/rio/wind.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/sys/src/cmd/rio/wind.c b/sys/src/cmd/rio/wind.c
index c90912639..d68584040 100644
--- a/sys/src/cmd/rio/wind.c
+++ b/sys/src/cmd/rio/wind.c
@@ -687,7 +687,7 @@ wkeyctl(Window *w, Rune r)
--w->holding;
else
w->holding++;
- wsetcursor(w, FALSE);
+ wsetcursor(w, 0);
wrepaint(w);
if(r == Kesc)
return;
@@ -871,9 +871,9 @@ wplumb(Window *w)
m->data = runetobyte(w->r+p0, p1-p0, &m->ndata);
if(plumbsend(fd, m) < 0){
c = lastcursor;
- riosetcursor(&query);
+ riosetcursor(&query, 1);
sleep(300);
- riosetcursor(c);
+ riosetcursor(c, 1);
}
plumbfree(m);
}
@@ -903,6 +903,12 @@ wlook(Window *w)
wshow(w, i);
}
+int
+winborder(Window *w, Point xy)
+{
+ return ptinrect(xy, w->screenr) && !ptinrect(xy, insetrect(w->screenr, Selborder));
+}
+
void
wmousectl(Window *w)
{
@@ -1193,7 +1199,7 @@ wctlmesg(Window *w, int m, Rectangle r, void *p)
if(w->i==nil)
break;
if(w==input)
- wsetcursor(w, FALSE);
+ wsetcursor(w, 0);
wrepaint(w);
flushimage(display, 1);
break;
@@ -1293,8 +1299,6 @@ wsetcursor(Window *w, int force)
{
Cursor *p;
- if(menuing || sweeping)
- return;
if(w==nil || w->i==nil || Dx(w->screenr)<=0)
p = nil;
else if(wpointto(mouse->xy) == w){
@@ -1303,20 +1307,20 @@ wsetcursor(Window *w, int force)
p = &whitearrow;
}else
p = nil;
- if(force) /* force cursor reload */
- lastcursor = nil;
- riosetcursor(p);
+ if(!menuing)
+ riosetcursor(p, force && !menuing);
}
void
-riosetcursor(Cursor *p)
+riosetcursor(Cursor *p, int force)
{
- if(p==lastcursor)
+ if(!force && p==lastcursor)
return;
setcursor(mousectl, p);
lastcursor = p;
}
+
void
wtopme(Window *w)
{
@@ -1373,7 +1377,7 @@ wclunk(Window *w)
w->deleted = TRUE;
if(w == input){
input = nil;
- wsetcursor(w, FALSE);
+ wsetcursor(w, 0);
}
if(w == wkeyboard)
wkeyboard = nil;