diff options
| -rw-r--r-- | sys/src/libdraw/event.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/src/libdraw/event.c b/sys/src/libdraw/event.c index 8b0ad5e64..05052477f 100644 --- a/sys/src/libdraw/event.c +++ b/sys/src/libdraw/event.c @@ -385,7 +385,12 @@ emouse(void) if(Smouse < 0) drawerror(display, "events: mouse not initialized"); - eb = ebread(&eslave[Smouse]); + for(;;){ + eb = ebread(&eslave[Smouse]); + if(!ecanmouse()) + break; + free(eb); /* drop queued mouse events */ + } m.xy.x = atoi((char*)eb->buf+1+0*12); m.xy.y = atoi((char*)eb->buf+1+1*12); b = atoi((char*)eb->buf+1+2*12); |
