summaryrefslogtreecommitdiff
path: root/lisp/play/zone.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2002-06-13 22:27:37 +0000
committerRichard M. Stallman <rms@gnu.org>2002-06-13 22:27:37 +0000
commit216640c5ded06bab6f8b1aa3ee900f86e3d886b3 (patch)
tree4402cc2f0045dde263844cb7b81e52f127db0539 /lisp/play/zone.el
parent9dde4e0c8f89a33195cdbe33fe18ce8b89e07a92 (diff)
downloademacs-216640c5ded06bab6f8b1aa3ee900f86e3d886b3.tar.gz
(zone-timer): New variable holds the idle timer.
(zone): Don't fiddle with the idle timer at all. (zone-when-idle): Put the idle timer in zone-timer. If one is already set up, cancel it and make a new one. (zone-leave-me-alone): Likewise.
Diffstat (limited to 'lisp/play/zone.el')
-rw-r--r--lisp/play/zone.el23
1 files changed, 11 insertions, 12 deletions
diff --git a/lisp/play/zone.el b/lisp/play/zone.el
index 8c0a581c088..b2781c8afbf 100644
--- a/lisp/play/zone.el
+++ b/lisp/play/zone.el
@@ -47,6 +47,9 @@
(defvar zone-idle 20
"*Seconds to idle before zoning out.")
+(defvar zone-timer nil
+ "The timer we use to decide when to zone out, or nil if none.")
+
(defvar zone-timeout nil
"*Seconds to timeout the zoning.
If nil, don't interrupt for about 1^26 seconds.")
@@ -132,9 +135,6 @@ If the element is a function or a list of a function and a number,
(defun zone ()
"Zone out, completely."
(interactive)
- (let ((timer (get 'zone 'timer)))
- (and (timerp timer) (cancel-timer timer)))
- (put 'zone 'timer nil)
(let ((f (selected-frame))
(outbuf (get-buffer-create "*zone*"))
(text (buffer-substring (window-start) (window-end)))
@@ -175,26 +175,25 @@ If the element is a function or a list of a function and a number,
(sit-for 3)))
(quit (ding) (message "Zoning...sorry")))
(when ct (modify-frame-parameters f (list (cons 'cursor-type ct)))))
- (kill-buffer outbuf)
- (zone-when-idle zone-idle)))
+ (kill-buffer outbuf)))
;;;; Zone when idle, or not.
(defun zone-when-idle (secs)
"Zone out when Emacs has been idle for SECS seconds."
(interactive "nHow long before I start zoning (seconds): ")
+ (if (timerp zone-timer)
+ (cancel-timer zone-timer))
+ (setq zone-timer nil)
(or (<= secs 0)
- (let ((timer (get 'zone 'timer)))
- (or (eq timer t)
- (timerp timer)))
- (put 'zone 'timer (run-with-idle-timer secs t 'zone))))
+ (setq zone-timer (run-with-idle-timer secs t 'zone))))
(defun zone-leave-me-alone ()
"Don't zone out when Emacs is idle."
(interactive)
- (let ((timer (get 'zone 'timer)))
- (and (timerp timer) (cancel-timer timer)))
- (put 'zone 'timer t)
+ (if (timerp zone-timer)
+ (cancel-timer zone-timer))
+ (setq zone-timer nil)
(message "I won't zone out any more"))