ref: 762093d2125c0f6efffd55697e6b580dd607ccf3
parent: 883ded7b49fc9775d5bca5cb03dcec6d006dc92d
author: cinap_lenrek <[email protected]>
date: Sun Aug 11 20:08:51 EDT 2013
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.
--- a/sys/src/games/catclock.c
+++ b/sys/src/games/catclock.c
@@ -118,7 +118,7 @@
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();
--- a/sys/src/games/juggle.c
+++ b/sys/src/games/juggle.c
@@ -76,7 +76,7 @@
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);