branch: master commit 543e97b0c590afa640f0d815ba600f8b8a1890b8 Author: jhonnyseven <jhonnyse...@users.noreply.github.com> Commit: Oleh Krehel <ohwoeo...@gmail.com>
Fix switch-frame handling. Calling only `hydra-keyboard-quit' on switch-frame event was effectively stopping the original frame switch. This change adds a call to the original handler after calling `hydra-keyboard-quit'. See #73 * hydra.el: Add `hydra--handle-switch-frame' * hydra-test.el: Update Fixes #77 --- hydra-test.el | 24 ++++++++++++------------ hydra.el | 8 +++++++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/hydra-test.el b/hydra-test.el index f1edbb1..b908ac0 100644 --- a/hydra-test.el +++ b/hydra-test.el @@ -64,7 +64,7 @@ Call the head: `first-error'." (107 . hydra-error/previous-error) (106 . hydra-error/next-error) (104 . hydra-error/first-error) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -116,7 +116,7 @@ Call the head: `next-error'." (107 . hydra-error/previous-error) (106 . hydra-error/next-error) (104 . hydra-error/first-error) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -168,7 +168,7 @@ Call the head: `previous-error'." (107 . hydra-error/previous-error) (106 . hydra-error/next-error) (104 . hydra-error/first-error) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -231,7 +231,7 @@ The body can be accessed via `hydra-error/body'." (107 . hydra-error/previous-error) (106 . hydra-error/next-error) (104 . hydra-error/first-error) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -357,7 +357,7 @@ The body can be accessed via `hydra-toggle/body'." (97 . hydra-toggle/abbrev-mode) (102 . hydra-toggle/auto-fill-mode) (116 . hydra-toggle/toggle-truncate-lines) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -448,7 +448,7 @@ Call the head: `next-line'." (107 . hydra-vi/previous-line) (106 . hydra-vi/next-line) (7 . hydra-vi/hydra-keyboard-quit) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -505,7 +505,7 @@ Call the head: `previous-line'." (107 . hydra-vi/previous-line) (106 . hydra-vi/next-line) (7 . hydra-vi/hydra-keyboard-quit) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -578,7 +578,7 @@ The body can be accessed via `hydra-vi/body'." (107 . hydra-vi/previous-line) (106 . hydra-vi/next-line) (7 . hydra-vi/hydra-keyboard-quit) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -863,7 +863,7 @@ Call the head: `(text-scale-set 0)'." (setq hydra-curr-map (quote (keymap (7 . hydra-keyboard-quit) (114 . hydra-zoom/lambda-r) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -924,7 +924,7 @@ The body can be accessed via `hydra-zoom/body'." (setq hydra-curr-map (quote (keymap (7 . hydra-keyboard-quit) (114 . hydra-zoom/lambda-r) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -985,7 +985,7 @@ Call the head: `(text-scale-set 0)'." (setq hydra-curr-map (quote (keymap (7 . hydra-keyboard-quit) (114 . hydra-zoom/lambda-r) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) @@ -1046,7 +1046,7 @@ The body can be accessed via `hydra-zoom/body'." (setq hydra-curr-map (quote (keymap (7 . hydra-keyboard-quit) (114 . hydra-zoom/lambda-r) - (switch-frame . hydra-keyboard-quit) + (switch-frame . hydra--handle-switch-frame) (kp-subtract . hydra--negative-argument) (kp-9 . hydra--digit-argument) (kp-8 . hydra--digit-argument) diff --git a/hydra.el b/hydra.el index f7b305c..975bff7 100644 --- a/hydra.el +++ b/hydra.el @@ -188,7 +188,7 @@ Vanquishable only through a blue head.") (define-key map [kp-8] 'hydra--digit-argument) (define-key map [kp-9] 'hydra--digit-argument) (define-key map [kp-subtract] 'hydra--negative-argument) - (define-key map [switch-frame] 'hydra-keyboard-quit) + (define-key map [switch-frame] 'hydra--handle-switch-frame) map) "Keymap that all Hydras inherit. See `universal-argument-map'.") @@ -196,6 +196,12 @@ Vanquishable only through a blue head.") (make-sparse-keymap) "Keymap of the current Hydra called.") +(defun hydra--handle-switch-frame (evt) + "Quit hydra and call old switch-frame event handler." + (interactive "e") + (hydra-keyboard-quit) + (funcall (lookup-key (current-global-map) [switch-frame]) evt)) + (defun hydra--universal-argument (arg) "Forward to (`universal-argument' ARG)." (interactive "P")