[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'ou
From: |
Robert Pluim |
Subject: |
Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'. |
Date: |
Mon, 16 Jan 2023 14:57:03 +0100 |
>>>>> On Wed, 11 Jan 2023 14:37:54 -0500 (EST), Juri Linkov <juri@jurta.org>
>>>>> said:
Juri> branch: emacs-29
Juri> commit 4a8891a462e41e81a5232810b67d9d85f79bc515
Juri> Author: Juri Linkov <juri@linkov.net>
Juri> Commit: Juri Linkov <juri@linkov.net>
Juri> * etc/NEWS: Mention incompatible changes in
'outline-minor-mode-cycle-map'.
Juri> * lisp/outline.el (outline-minor-mode-cycle--bind):
Juri> Add docstring (bug#60426).
Juri> (outline-minor-mode-cycle--bind): Default 'map' to
Juri> 'outline-minor-mode-cycle-map'.
Juri> (outline-minor-mode-cycle-map): Improve docstring.
Juri> (outline-minor-mode): Move margin-cycling keys to
Juri> 'outline-minor-mode-cycle-map'.
Juri> ---
Juri/Eli, any objection to putting something like the following in
emacs-29? That would make it easier to add heading-specific bindings
in NEWS mode, which Iʼd do in master. It also avoids creating a
separate keymap for each heading.
Robert
--
diff --git c/lisp/outline.el i/lisp/outline.el
index 91f6040687b..65d0d4db261 100644
--- c/lisp/outline.el
+++ i/lisp/outline.el
@@ -1766,6 +1766,13 @@ outline-cycle-buffer
;;; 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)
+
(defun outline--create-button-icons ()
(pcase outline-minor-mode-use-buttons
('in-margins
@@ -1798,15 +1805,21 @@ outline--create-button-icons
(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))))))
+(defvar-keymap outline-inserted-button-map
+ "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)
+
+(defvar-keymap outline-overlay-button-map
+ "RET" #'outline-cycle)
+
(defun outline--insert-button (type)
(with-silent-modifications
(save-excursion
@@ -1829,19 +1842,13 @@ outline--insert-button
(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
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'.,
Robert Pluim <=
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Eli Zaretskii, 2023/01/16
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Robert Pluim, 2023/01/16
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Eli Zaretskii, 2023/01/16
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Robert Pluim, 2023/01/16
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Juri Linkov, 2023/01/16
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Eli Zaretskii, 2023/01/16
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Robert Pluim, 2023/01/16
- Re: emacs-29 4a8891a462: * etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'., Eli Zaretskii, 2023/01/16
- News-mode improvements, Robert Pluim, 2023/01/30
- Re: News-mode improvements, Eli Zaretskii, 2023/01/30