Skip to content
Snippets Groups Projects
Commit 290f2332 authored by ram's avatar ram
Browse files

Changed SERVE-EVENT to not try to serve X events when the FD is in the FD

handlers list.  This prevents recursive entry into reading off of a display
when BUFFER-INPUT-WAIT-DEFAULT calls WAIT-UNTIL-FD-USABLE.
parent cd57c854
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;; ;;;
(ext:file-comment (ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/serve-event.lisp,v 1.8 1991/05/22 00:19:39 ram Exp $") "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/serve-event.lisp,v 1.9 1991/05/22 17:47:15 ram Exp $")
;;; ;;;
;;; ********************************************************************** ;;; **********************************************************************
;;; ;;;
...@@ -269,7 +269,14 @@ ...@@ -269,7 +269,14 @@
#+clx #+clx
(dolist (d/h *display-event-handlers*) (dolist (d/h *display-event-handlers*)
(let ((d (car d/h))) (let ((d (car d/h)))
(when (xlib::event-listen d) (declare (inline member))
;;
;; If in the *descriptor-handlers*, then we are already waiting for input
;; on that display, and we don't want to do it recursively.
(when (and (not (member (fd-stream-fd (xlib::display-input-stream d))
*descriptor-handlers*
:key #'handler-descriptor))
(xlib::event-listen d))
(handler-bind ((error #'(lambda (condx) (handler-bind ((error #'(lambda (condx)
(declare (ignore condx)) (declare (ignore condx))
(flush-display-events d)))) (flush-display-events d))))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment