emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master 543e97b 19/28: Fix switch-frame handling.


From: Oleh Krehel
Subject: [elpa] master 543e97b 19/28: Fix switch-frame handling.
Date: Sun, 22 Mar 2015 16:34:45 +0000

branch: master
commit 543e97b0c590afa640f0d815ba600f8b8a1890b8
Author: jhonnyseven <address@hidden>
Commit: Oleh Krehel <address@hidden>

    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")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]