Mercurial > emacs
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)