Fix menu display of keys when cua-mode is active

* lisp/menu-bar.el (menu-bar-edit-menu): Make the menus display
the correct keys for editing when cua-mode is active (bug#28930).
This commit is contained in:
Lars Ingebrigtsen 2021-10-11 13:17:38 +02:00
parent 237b2ecf2d
commit 932c23f797

View file

@ -514,7 +514,11 @@
(cdr yank-menu)
kill-ring))
(not buffer-read-only))))
:help "Paste (yank) text most recently cut/copied"))
:help "Paste (yank) text most recently cut/copied"
:keys (lambda ()
(if cua-mode
"\\[cua-paste]"
"\\[yank]"))))
(bindings--define-key menu [copy]
;; ns-win.el said: Substitute a Copy function that works better
;; under X (for GNUstep).
@ -523,14 +527,23 @@
'kill-ring-save)
:enable mark-active
:help "Copy text in region between mark and current position"
:keys ,(if (featurep 'ns)
"\\[ns-copy-including-secondary]"
"\\[kill-ring-save]")))
:keys (lambda ()
(cond
((featurep 'ns)
"\\[ns-copy-including-secondary]")
((and cua-mode mark-active)
"\\[cua-copy-handler]")
(t
"\\[kill-ring-save]")))))
(bindings--define-key menu [cut]
'(menu-item "Cut" kill-region
:enable (and mark-active (not buffer-read-only))
:help
"Cut (kill) text in region between mark and current position"))
"Cut (kill) text in region between mark and current position"
:keys (lambda ()
(if (and cua-mode mark-active)
"\\[cua-cut-handler]"
"\\[kill-region]"))))
;; ns-win.el said: Separate undo from cut/paste section.
(if (featurep 'ns)
(bindings--define-key menu [separator-undo] menu-bar-separator))