emacs-diffs
[Top][All Lists]
Advanced

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

master 932c23f 3/3: Fix menu display of keys when cua-mode is active


From: Lars Ingebrigtsen
Subject: master 932c23f 3/3: Fix menu display of keys when cua-mode is active
Date: Mon, 11 Oct 2021 07:17:51 -0400 (EDT)

branch: master
commit 932c23f7978cf5e94ed9b6df4969b393f7551716
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    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).
---
 lisp/menu-bar.el | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 40a1730..7c9fc1a 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -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))



reply via email to

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