]> code.delx.au - gnu-emacs-elpa/commit
Allow heads to conditionally exit
authorOleh Krehel <ohwoeowho@gmail.com>
Thu, 23 Apr 2015 09:10:32 +0000 (11:10 +0200)
committerOleh Krehel <ohwoeowho@gmail.com>
Thu, 23 Apr 2015 09:10:32 +0000 (11:10 +0200)
commit192c5b07d0d2bafb67015ecfb2bccdda95feea86
treea6c4af90389137ab529bd6f7cab5ece30d236a09
parent8be0bff7464de16ff44f52e2509e648aa68e5886
Allow heads to conditionally exit

* hydra.el (hydra-deactivate): New defvar.
(hydra-set-transient-map): When `hydra-deactivate' is set, quit.
(hydra-disable): Make sure that `hydra-deactivate' is reset back to nil.

Fixes #115

Example: zoom in at most 5 times, then quit.

(defvar hydra-zoom-amount 1)

(defhydra hydra-zoom (global-map "<f2>")
  "zoom"
  ("g"
   (if (>= hydra-zoom-amount 5)
       (progn
         (setq hydra-zoom-amount 1)
         (setq hydra-deactivate t))
     (cl-incf hydra-zoom-amount)
     (call-interactively 'text-scale-increase))
   "in")
  ("l" text-scale-decrease "out"))
hydra.el