libdraw: don't redraw input box in enter/eenter when mouse is moved outside the rectangle
prevents some flickering when devdraw is used over a high latency connection. Fixes issue 236
This commit is contained in:
parent
79ff9d28bd
commit
f6a9db1bd9
2 changed files with 4 additions and 2 deletions
|
@ -111,6 +111,7 @@ eenter(char *ask, char *buf, int len, Mouse *m)
|
||||||
sc = b->clipr;
|
sc = b->clipr;
|
||||||
replclipr(b, 0, b->r);
|
replclipr(b, 0, b->r);
|
||||||
|
|
||||||
|
nodraw:
|
||||||
switch(i){
|
switch(i){
|
||||||
default:
|
default:
|
||||||
done = 1;
|
done = 1;
|
||||||
|
@ -187,7 +188,7 @@ eenter(char *ask, char *buf, int len, Mouse *m)
|
||||||
*m = ev.mouse;
|
*m = ev.mouse;
|
||||||
if(!ptinrect(m->xy, r)){
|
if(!ptinrect(m->xy, r)){
|
||||||
down = 0;
|
down = 0;
|
||||||
continue;
|
goto nodraw;
|
||||||
}
|
}
|
||||||
if(m->buttons & 7){
|
if(m->buttons & 7){
|
||||||
down = 1;
|
down = 1;
|
||||||
|
|
|
@ -120,6 +120,7 @@ enter(char *ask, char *buf, int len, Mousectl *mc, Keyboardctl *kc, Screen *scr)
|
||||||
}
|
}
|
||||||
flushimage(display, 1);
|
flushimage(display, 1);
|
||||||
|
|
||||||
|
nodraw:
|
||||||
switch(alt(a)){
|
switch(alt(a)){
|
||||||
case -1:
|
case -1:
|
||||||
done = 1;
|
done = 1;
|
||||||
|
@ -194,7 +195,7 @@ enter(char *ask, char *buf, int len, Mousectl *mc, Keyboardctl *kc, Screen *scr)
|
||||||
case 1:
|
case 1:
|
||||||
if(!ptinrect(m.xy, r)){
|
if(!ptinrect(m.xy, r)){
|
||||||
down = 0;
|
down = 0;
|
||||||
continue;
|
goto nodraw;
|
||||||
}
|
}
|
||||||
if(m.buttons & 7){
|
if(m.buttons & 7){
|
||||||
down = 1;
|
down = 1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue