summaryrefslogtreecommitdiffstats
path: root/Gui/wm/ws.c
diff options
context:
space:
mode:
Diffstat (limited to 'Gui/wm/ws.c')
-rw-r--r--Gui/wm/ws.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/Gui/wm/ws.c b/Gui/wm/ws.c
index cf04488c92..d5d4e4821b 100644
--- a/Gui/wm/ws.c
+++ b/Gui/wm/ws.c
@@ -605,7 +605,20 @@ keypressed:
#endif
break;
- case MotionNotify: i=wsMoveMouse; goto buttonreleased;
+ case MotionNotify:
+ i=wsMoveMouse;
+ {
+ /* pump all motion events from the display queue:
+ this way it works faster when moving the window */
+ static XEvent e;
+ while(XCheckTypedWindowEvent(display,Event->xany.window,MotionNotify,&e)){
+ /* FIXME: need to make sure we didn't release/press the button in between...*/
+ /* FIXME: do we need some timeout here to make sure we don't spend too much time
+ removing events from the queue? */
+ Event = &e;
+ }
+ }
+ goto buttonreleased;
case ButtonRelease: i=Event->xbutton.button + 128; goto buttonreleased;
case ButtonPress: i=Event->xbutton.button; goto buttonreleased;
case EnterNotify: i=wsEnterWindow; goto buttonreleased;