[comp.windows.x] User-defined events in clx

yadran@sol.cs.ucla.edu (Yadran Eterovic) (07/15/89)

We have defined our own events using:

(define-extension tool-events :events (list :test-event))

(declare-event :test-event	       
	       (string datum))

We have put them in the event queue managed by clx using:

(queue-event *DISPLAY* :test-event :datum "this is a test" :append-p t)

But when we attempt to retrieve the events using process-event it
hangs:

(defun test-event()
  (with-event-queue (*DISPLAY*)
    (catch 'found-event
      (loop
       (print "process-event  -- ")
       (process-event *DISPLAY*
	 :timeout 0
	 :handler #'(lambda (event-key &key datum)
		      (print event-key datum)
		      (finish-output)
		      (if (equal event-key :test-event)
			  (throw 'found-event nil)))
	 :discard-p t)))))

So now we ask:

* Has anybody done something like this before?

* What pitfalls should we look for in defining our own events?

* Any suggestions?


Yadran Eterovic, yadran@cs.ucla.edu