diff options
author | Robert Pluim <rpluim@gmail.com> | 2023-01-24 20:37:56 +0200 |
---|---|---|
committer | Juri Linkov <juri@linkov.net> | 2023-01-24 20:37:56 +0200 |
commit | 695e9f71c3f13c1338de5bb653d71462a6e436b8 (patch) | |
tree | fb8aeef9307d887e20b638b9d21f34506a4126c8 /lisp/outline.el | |
parent | e31a56239654a74b60e51f20799c8b09522082e4 (diff) | |
download | emacs-695e9f71c3f13c1338de5bb653d71462a6e436b8.tar.gz |
Use named keymaps for outline buttons
https://lists.gnu.org/archive/html/emacs-devel/2023-01/msg00334.html
* lisp/outline.el (outline-button-icon-map)
(outline-overlay-button-map, outline-inserted-button-map):
Keymaps refactored from outline--create-button-icons and
outline--insert-button.
(outline--create-button-icons, outline--insert-button): Move
keymaps to separate variables.
Diffstat (limited to 'lisp/outline.el')
-rw-r--r-- | lisp/outline.el | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/lisp/outline.el b/lisp/outline.el index 0bfda8388ed..a89985d1990 100644 --- a/lisp/outline.el +++ b/lisp/outline.el @@ -1776,6 +1776,20 @@ With a prefix argument, show headings up to that LEVEL." ;;; Button/margin indicators +(defvar-keymap outline-button-icon-map + "<mouse-2>" #'outline-cycle + ;; Need to override the global binding + ;; `mouse-appearance-menu' with <down->: + "S-<down-mouse-1>" #'ignore + "S-<mouse-1>" #'outline-cycle-buffer) + +(defvar-keymap outline-overlay-button-map + "RET" #'outline-cycle) + +(defvar-keymap outline-inserted-button-map + :parent (make-composed-keymap outline-button-icon-map + outline-overlay-button-map)) + (defun outline--create-button-icons () (pcase outline-minor-mode-use-buttons ('in-margins @@ -1808,12 +1822,7 @@ With a prefix argument, show headings up to that LEVEL." (propertize (icon-string icon-name) 'mouse-face 'default 'follow-link 'mouse-face - 'keymap (define-keymap - "<mouse-2>" #'outline-cycle - ;; Need to override the global binding - ;; `mouse-appearance-menu' with <down->: - "S-<down-mouse-1>" #'ignore - "S-<mouse-1>" #'outline-cycle-buffer))) + 'keymap outline-button-icon-map)) (list 'outline-open (if outline--use-rtl 'outline-close-rtl 'outline-close)))))) @@ -1839,19 +1848,13 @@ With a prefix argument, show headings up to that LEVEL." (overlay-put o 'face (plist-get icon 'face)) (overlay-put o 'follow-link 'mouse-face) (overlay-put o 'mouse-face 'highlight) - (overlay-put o 'keymap (define-keymap - "RET" #'outline-cycle - "<mouse-2>" #'outline-cycle - ;; Need to override the global binding - ;; `mouse-appearance-menu' with <down->: - "S-<down-mouse-1>" #'ignore - "S-<mouse-1>" #'outline-cycle-buffer))) + (overlay-put o 'keymap outline-inserted-button-map)) ('in-margins (overlay-put o 'before-string icon) - (overlay-put o 'keymap (define-keymap "RET" #'outline-cycle))) + (overlay-put o 'keymap outline-overlay-button-map)) (_ (overlay-put o 'before-string icon) - (overlay-put o 'keymap (define-keymap "RET" #'outline-cycle)))))))) + (overlay-put o 'keymap outline-overlay-button-map))))))) (defun outline--fix-up-all-buttons (&optional from to) (when outline-minor-mode-use-buttons |