Update of /project/mcclim/cvsroot/mcclim/Lisp-Dep In directory clnet:/tmp/cvs-serv26500/Lisp-Dep
Modified Files: mp-nil.lisp Log Message: Fix event compression on single-process lisps. This consists of two changes: 1) Don't use immediate-sheet-input-mixin, and 2) When reading events from the backend, read all available events in a nonblocking fashion, so that events which have accumulated since we last checked can be compressed.
This requires the backend 'get-next-event' to support :timeout 0. Currently CLX and Beagle appear to do so, while Gtkairo does not.
--- /project/mcclim/cvsroot/mcclim/Lisp-Dep/mp-nil.lisp 2004/05/12 12:46:49 1.6 +++ /project/mcclim/cvsroot/mcclim/Lisp-Dep/mp-nil.lisp 2006/07/08 16:58:36 1.7 @@ -125,7 +125,10 @@ (declare (ignore lock)) (flet ((wait-func () (loop for port in climi::*all-ports* ;; this is dubious - do (process-next-event port)) + do (loop as this-event = (process-next-event port :timeout 0) + for got-events = this-event then (or got-events this-event) + while this-event + finally (unless got-events (process-next-event port)))) (car cv))) (setf (car cv) nil) (if timeout