Skip to content

Commit

Permalink
Fix switch-frame handling.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
jhonnyseven authored and abo-abo committed Mar 14, 2015
1 parent 5e8c7f2 commit 543e97b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 13 deletions.
24 changes: 12 additions & 12 deletions hydra-test.el
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
8 changes: 7 additions & 1 deletion hydra.el
Original file line number Diff line number Diff line change
Expand Up @@ -188,14 +188,20 @@ 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'.")

(defvar hydra-curr-map
(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")
Expand Down

0 comments on commit 543e97b

Please sign in to comment.