]> git.eshelyaron.com Git - emacs.git/commitdiff
(type-break-catch-up-event): New function.
authorChong Yidong <cyd@stupidchicken.com>
Tue, 30 Jan 2007 19:36:41 +0000 (19:36 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Tue, 30 Jan 2007 19:36:41 +0000 (19:36 +0000)
(type-break-demo-hanoi, type-break-demo-life)
(type-break-demo-boring): Use it.

lisp/type-break.el

index 98851bcab204ee76789810cbb2b9c3ac0da97b7c..361670dbe6c66e8c5fd0b195bce00bb4dc6831ed 100644 (file)
@@ -1120,6 +1120,13 @@ With optional non-nil ALL, force redisplay of all mode-lines."
 \f
 ;;; 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 @@ With optional non-nil ALL, force redisplay of all mode-lines."
         (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 @@ With optional non-nil ALL, force redisplay of all mode-lines."
             (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 @@ With optional non-nil ALL, force redisplay of all mode-lines."
                      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)