branch: master commit d44bf581d2c9cb831ccc5ac0fff24be4c36b8eed Author: Oleh Krehel <ohwoeo...@gmail.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
Don't bind `hydra-keyboard-quit' in foreign keymaps * hydra.el (defhydra): Update. Fixes #78. --- hydra.el | 51 ++++++++++++++++++++++++++------------------------- 1 files changed, 26 insertions(+), 25 deletions(-) diff --git a/hydra.el b/hydra.el index 975bff7..2680f38 100644 --- a/hydra.el +++ b/hydra.el @@ -908,31 +908,32 @@ result of `defhydra'." (cl-mapcar (lambda (head) (let ((name (hydra--head-property head :cmd-name))) - (when (cadr head) - (when (or body-key method) - (let ((bind (hydra--head-property head :bind 'default)) - (final-key - (if body-key - (vconcat (kbd body-key) (kbd (car head))) - (kbd (car head))))) - (cond ((null bind) nil) - - ((eq bind 'default) - (list - (if (hydra--callablep method) - 'funcall - 'define-key) - method - final-key - (list 'function name))) - - ((hydra--callablep bind) - `(funcall (function ,bind) - ,final-key - (function ,name))) - - (t - (error "Invalid :bind property %S" head)))))))) + (when (and (cadr head) + (not (eq (cadr head) 'hydra-keyboard-quit)) + (or body-key method)) + (let ((bind (hydra--head-property head :bind 'default)) + (final-key + (if body-key + (vconcat (kbd body-key) (kbd (car head))) + (kbd (car head))))) + (cond ((null bind) nil) + + ((eq bind 'default) + (list + (if (hydra--callablep method) + 'funcall + 'define-key) + method + final-key + (list 'function name))) + + ((hydra--callablep bind) + `(funcall (function ,bind) + ,final-key + (function ,name))) + + (t + (error "Invalid :bind property %S" head))))))) heads)) (defun ,(intern (format "%S/hint" name)) () ,(hydra--message name body docstring heads))