changeset 8916:e3bce0159317

motion fix from Gregory Kovriga <gkovriga@techunix.technion.ac.il>
author pontscho
date Sun, 12 Jan 2003 17:34:46 +0000
parents 1c09d26183f5
children 0694a2fba3dd
files Gui/wm/ws.c
diffstat 1 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/Gui/wm/ws.c	Sun Jan 12 16:45:42 2003 +0000
+++ b/Gui/wm/ws.c	Sun Jan 12 17:34:46 2003 +0000
@@ -605,7 +605,20 @@
 #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;