diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-08-12 00:08:51 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-08-12 00:08:51 +0200 |
commit | 762093d2125c0f6efffd55697e6b580dd607ccf3 (patch) | |
tree | 791926b7e057d282f96c640caf55d3ac7e133641 | |
parent | 883ded7b49fc9775d5bca5cb03dcec6d006dc92d (diff) |
games/juggle, games/catclock: keep up with queued mouse events
many queued mouse events delay eresize() because
new ebread() takes from the queue first before attempting
to read from the event pipe. this is a waste of memory, so
just process (dequeue) all the events as long as there are
any on each iteration.
-rw-r--r-- | sys/src/games/catclock.c | 2 | ||||
-rw-r--r-- | sys/src/games/juggle.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/src/games/catclock.c b/sys/src/games/catclock.c index a581bc54d..01faba297 100644 --- a/sys/src/games/catclock.c +++ b/sys/src/games/catclock.c @@ -118,7 +118,7 @@ void main(int argc, char *argv[]){ eye[i]=draweye(i*PI/NTAIL); } for(;;){ - if(ecanmouse()) emouse(); /* don't get resize events without this! */ + while(ecanmouse()) emouse(); /* don't get resize events without this! */ drawclock(); flushimage(display, 1); // bflush(); diff --git a/sys/src/games/juggle.c b/sys/src/games/juggle.c index 01dea4146..f3971b51d 100644 --- a/sys/src/games/juggle.c +++ b/sys/src/games/juggle.c @@ -76,7 +76,7 @@ Point bpos(int b, int step, int t){ void move(int t){ int i, j; for(i=0;i!=NSTEP;i++){ - if(ecanmouse()) emouse(); + while(ecanmouse()) emouse(); draw(image, inset(image->r, 3), display->white, nil, ZP); for(j=0;j!=nball;j++) fillellipse(image, bpos(j, i, t), RBALL, RBALL, disk[j%ndisk], ZP); |