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

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

[elpa] externals/buffer-expose 9f725d0 2/7: Add own ace handler function


From: Clemens Radermacher
Subject: [elpa] externals/buffer-expose 9f725d0 2/7: Add own ace handler function for keys not displayed by aw
Date: Mon, 4 Mar 2019 11:08:48 -0500 (EST)

branch: externals/buffer-expose
commit 9f725d0553d3cda75898d57ff94705b31cd7bf24
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    Add own ace handler function for keys not displayed by aw
---
 buffer-expose.el | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/buffer-expose.el b/buffer-expose.el
index dd0afad..7e1457e 100644
--- a/buffer-expose.el
+++ b/buffer-expose.el
@@ -969,6 +969,21 @@ F defaults to the currently selected window."
   (funcall #'aw-switch-to-window w)
   (buffer-expose-choose))
 
+(defun buffer-expose-ace-handler (char)
+  "Execute buffer-expose action for CHAR."
+  (cond ((memq char '(27 ?\C-g))
+         ;; exit silently
+         (throw 'done 'exit))
+        ((mouse-event-p char)
+         (signal 'user-error (list "Mouse event not handled" char)))
+        (t
+         (if (or (lookup-key buffer-expose-exit-map (vector char))
+                 (lookup-key buffer-expose-grid-map (vector char)))
+             (progn (call-interactively (key-binding (vector char)))
+                    (throw 'done 'exit))
+           (message "No such candidate: %s, hit `C-g' to quit."
+                    (if (characterp char) (string char) char))))))
+
 (defun buffer-expose-ace-window ()
   "Choose a window with ‘ace-window’."
   (interactive)
@@ -979,7 +994,7 @@ F defaults to the currently selected window."
            (aw-background nil)
            (aw-ignored-buffers nil)
            (avy-dispatch-alist nil)
-           (aw-dispatch-function #'avy-handler-default)
+           (aw-dispatch-function #'buffer-expose-ace-handler)
            (foreground (face-attribute 'aw-leading-char-face :foreground)))
       (cl-letf (((symbol-function #'aw--lead-overlay)
                  #'ignore))



reply via email to

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