changeset 75551:acad3d4a5f18

(type-break-catch-up-event): New function. (type-break-demo-hanoi, type-break-demo-life) (type-break-demo-boring): Use it.
author Chong Yidong <cyd@stupidchicken.com>
date Tue, 30 Jan 2007 19:36:41 +0000
parents 6e481fcb487c
children 4144cd078a1d
files lisp/type-break.el
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/type-break.el	Tue Jan 30 19:36:32 2007 +0000
+++ b/lisp/type-break.el	Tue Jan 30 19:36:41 2007 +0000
@@ -1120,6 +1120,13 @@
 
 ;;; Demo wrappers
 
+(defun type-break-catch-up-event ()
+  ;; If the last input event is a down-event, read and discard the
+  ;; corresponding up-event too, to avoid triggering another prompt.
+  (and (eventp last-input-event)
+       (memq 'down (event-modifiers last-input-event))
+       (read-event)))
+
 ;; This is a wrapper around hanoi that calls it with an arg large enough to
 ;; make the largest discs possible that will fit in the window.
 ;; Also, clean up the *Hanoi* buffer after we're done.
@@ -1132,9 +1139,11 @@
         (hanoi (/ (window-width) 8))
         ;; Wait for user to come back.
         (read-event)
+	(type-break-catch-up-event)
         (kill-buffer "*Hanoi*"))
     (quit
      (read-event)
+     (type-break-catch-up-event)
      (and (get-buffer "*Hanoi*")
           (kill-buffer "*Hanoi*")))))
 
@@ -1153,12 +1162,14 @@
             (life 3)
             ;; wait for user to return
             (read-event)
+	    (type-break-catch-up-event)
             (kill-buffer "*Life*"))
         (life-extinct
          (message "%s" (get 'life-extinct 'error-message))
          ;; restart demo
          (setq continue t))
         (quit
+	 (type-break-catch-up-event)
          (and (get-buffer "*Life*")
               (kill-buffer "*Life*")))))))
 
@@ -1244,7 +1255,8 @@
                      message))))
             (goto-char (point-min))
             (sit-for 60))
-          (read-event)
+	  (read-event)
+	  (type-break-catch-up-event)
           (kill-buffer buffer-name))
       (quit
        (and (get-buffer buffer-name)