summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/libdraw/event.c7
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);