[mcclim-cvs] CVS mcclim/Lisp-Dep
ahefner
ahefner at common-lisp.net
Sat Jul 8 16:58:36 UTC 2006
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
More information about the Mcclim-cvs
mailing list