Move ns-win.el's rather wacky menu adjustments to menu-bar.el.
authorGlenn Morris <rgm@gnu.org>
Mon, 25 Oct 2010 00:48:26 +0000 (17:48 -0700)
committerGlenn Morris <rgm@gnu.org>
Mon, 25 Oct 2010 00:48:26 +0000 (17:48 -0700)
* lisp/term/ns-win.el: Do not require easymenu.
(menu-bar-edit-menu) <copy, paste, paste-from-menu, separator-undo>:
<spell>: Move adjustments to menu-bar.el.
* lisp/menu-bar.el (menu-bar-edit-menu) <copy, paste, paste-from-menu>:
<separator-undo, spell>: Move ns-win's adjustments here.
* lisp/loadup.el [ns]: Do not load easymenu.

* src/Makefile.in (SOME_MACHINE_LISP): Remove easymenu.elc.
* lib-src/makefile.w32-in (OTHER_PLATFORM_SUPPORT): Remove easymenu.elc.

lib-src/ChangeLog
lib-src/makefile.w32-in
lisp/ChangeLog
lisp/loadup.el
lisp/menu-bar.el
lisp/term/ns-win.el
src/ChangeLog
src/Makefile.in

index 9e43da9..a4b0ff3 100644 (file)
@@ -1,3 +1,7 @@
+2010-10-25  Glenn Morris  <rgm@gnu.org>
+
+       * makefile.w32-in (OTHER_PLATFORM_SUPPORT): Remove easymenu.elc.
+
 2010-10-23  Glenn Morris  <rgm@gnu.org>
 
        * digest-doc.c, sorted-doc.c: Remove files.
index dc6406d..5591f0e 100644 (file)
@@ -189,7 +189,6 @@ OTHER_PLATFORM_SUPPORT = \
        $(lispsource)term/pc-win.elc \
        $(lispsource)x-dnd.elc \
        $(lispsource)term/x-win.elc \
-       $(lispsource)emacs-lisp/easymenu.elc \
        $(lispsource)term/ns-win.elc
 
 
index 9fd13d4..96c8df7 100644 (file)
@@ -1,7 +1,16 @@
+2010-10-25  Glenn Morris  <rgm@gnu.org>
+
+       * term/ns-win.el: Do not require easymenu.
+       (menu-bar-edit-menu) <copy, paste, paste-from-menu, separator-undo>:
+       <spell>: Move adjustments to menu-bar.el.
+       * menu-bar.el (menu-bar-edit-menu) <copy, paste, paste-from-menu>:
+       <separator-undo, spell>: Move ns-win's adjustments here.
+       * loadup.el [ns]: Do not load easymenu.
+
 2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 
        * image.el (image-checkbox-checked, image-checkbox-unchecked):
-       Deleted (Bug#7222).
+       Delete (Bug#7222).
 
        * startup.el (fancy-startup-tail): Instead of using inline images,
        refer to image files from etc/.
index 719f8be..775b6ee 100644 (file)
       (load "ls-lisp")
       (load "disp-table"))) ; needed to setup ibm-pc char set, see internal.el
 (if (featurep 'ns)
-    (progn
-      (load "emacs-lisp/easymenu")  ;; for platform-related menu adjustments
-      (load "term/ns-win")))
+    (load "term/ns-win"))
 (if (fboundp 'x-create-frame)
     ;; Do it after loading term/foo-win.el since the value of the
     ;; mouse-wheel-*-event vars depends on those files being loaded or not.
index 0659ae9..9d8e474 100644 (file)
 (define-key menu-bar-edit-menu [props]
   `(menu-item ,(purecopy "Text Properties") facemenu-menu))
 
+;; ns-win.el said: Add spell for platorm consistency.
+(if (featurep 'ns)
+    (define-key menu-bar-edit-menu [spell]
+      `(menu-item ,(purecopy "Spell") ispell-menu-map)))
+
 (define-key menu-bar-edit-menu [fill]
   `(menu-item ,(purecopy "Fill") fill-region
              :enable (and mark-active (not buffer-read-only))
              ,(purecopy "Delete the text in region between mark and current position")))
 (defvar yank-menu (cons (purecopy "Select Yank") nil))
 (fset 'yank-menu (cons 'keymap yank-menu))
-(define-key menu-bar-edit-menu [paste-from-menu]
-  `(menu-item ,(purecopy "Paste from Kill Menu") yank-menu
+;; The ns differences here seem silly.
+(define-key menu-bar-edit-menu (if (featurep 'ns) [select-paste]
+                                 [paste-from-menu])
+  ;; ns-win.el said: Change text to be more consistent with
+  ;; surrounding menu items `paste', etc."
+  `(menu-item ,(purecopy (if (featurep 'ns) "Select and Paste"
+                           "Paste from Kill Menu")) yank-menu
              :enable (and (cdr yank-menu) (not buffer-read-only))
              :help ,(purecopy "Choose a string from the kill ring and paste it")))
 (define-key menu-bar-edit-menu [paste]
   `(menu-item ,(purecopy "Paste") yank
              :enable (and (or
-                           ;; Emacs compiled --without-x doesn't have
-                           ;; x-selection-exists-p.
+                           ;; Emacs compiled --without-x (or --with-ns)
+                           ;; doesn't have x-selection-exists-p.
                            (and (fboundp 'x-selection-exists-p)
                                 (x-selection-exists-p 'CLIPBOARD))
-                           kill-ring)
+                           (if (featurep 'ns) ; like paste-from-menu
+                               (cdr yank-menu)
+                             kill-ring))
                           (not buffer-read-only))
              :help ,(purecopy "Paste (yank) text most recently cut/copied")))
 (define-key menu-bar-edit-menu [copy]
-  `(menu-item ,(purecopy "Copy") menu-bar-kill-ring-save
-             :enable mark-active
-             :help ,(purecopy "Copy text in region between mark and current position")
-             :keys ,(purecopy "\\[kill-ring-save]")))
+  ;; ns-win.el said: Substitute a Copy function that works better
+  ;; under X (for GNUstep).
+  `(menu-item ,(purecopy "Copy") ,(if (featurep 'ns)
+                                      'ns-copy-including-secondary
+                                    'menu-bar-kill-ring-save)
+              :enable mark-active
+              :help ,(purecopy "Copy text in region between mark and current position")
+              :keys ,(purecopy (if (featurep 'ns)
+                                   "\\[ns-copy-including-secondary]"
+                                 "\\[kill-ring-save]"))))
 (define-key menu-bar-edit-menu [cut]
   `(menu-item ,(purecopy "Cut") kill-region
              :enable (and mark-active (not buffer-read-only))
              :help
              ,(purecopy "Cut (kill) text in region between mark and current position")))
+;; ns-win.el said: Separate undo from cut/paste section.
+(if (featurep 'ns)
+    (define-key menu-bar-edit-menu [separator-undo] `(,(purecopy "--"))))
 (define-key menu-bar-edit-menu [undo]
   `(menu-item ,(purecopy "Undo") undo
              :enable (and (not buffer-read-only)
                             (consp buffer-undo-list)))
              :help ,(purecopy "Undo last operation")))
 
-
 (defun menu-bar-kill-ring-save (beg end)
   (interactive "r")
   (if (mouse-region-match)
@@ -2082,5 +2102,4 @@ If FRAME is nil or not given, use the selected frame."
 
 (provide 'menu-bar)
 
-;; arch-tag: 6e6a3c22-4ec4-4d3d-8190-583f8ef94ced
 ;;; menu-bar.el ends here
index acd6bda..ccbe9be 100644 (file)
 (require 'frame)
 (require 'mouse)
 (require 'faces)
-(require 'easymenu)
 (require 'menu-bar)
 (require 'fontset)
 
-;; Not needed?
-;;(require 'ispell)
-
 (defgroup ns nil
   "GNUstep/Mac OS X specific features."
   :group 'environment)
@@ -441,38 +437,6 @@ The properties returned may include `top', `left', `height', and `width'."
     (define-key menu-bar-help-menu [info-panel]
       '("About Emacs..." . ns-do-emacs-info-panel)))
 
-;;;; Edit menu: Modify slightly
-
-;; Substitute a Copy function that works better under X (for GNUstep).
-(easy-menu-remove-item global-map '("menu-bar" "edit") 'copy)
-(define-key-after menu-bar-edit-menu [copy]
-  '(menu-item "Copy" ns-copy-including-secondary
-    :enable mark-active
-    :help "Copy text in region between mark and current position")
-  'cut)
-
-;; Change to same precondition as select-and-paste, as we don't have
-;; `x-selection-exists-p'.
-(easy-menu-remove-item global-map '("menu-bar" "edit") 'paste)
-(define-key-after menu-bar-edit-menu [paste]
-  '(menu-item "Paste" yank
-    :enable (and (cdr yank-menu) (not buffer-read-only))
-    :help "Paste (yank) text most recently cut/copied")
-  'copy)
-
-;; Change text to be more consistent with surrounding menu items `paste', etc.
-(easy-menu-remove-item global-map '("menu-bar" "edit") 'paste-from-menu)
-(define-key-after menu-bar-edit-menu [select-paste]
-  '(menu-item "Select and Paste" yank-menu
-    :enable (and (cdr yank-menu) (not buffer-read-only))
-    :help "Choose a string from the kill ring and paste it")
-  'paste)
-
-;; Separate undo from cut/paste section, add spell for platform consistency.
-(define-key-after menu-bar-edit-menu [separator-undo] '("--") 'undo)
-(define-key-after menu-bar-edit-menu [spell] '("Spell" . ispell-menu-map) 'fill)
-
-
 ;;;; Services
 (declare-function ns-perform-service "nsfns.m" (service send))
 
index a0aa4a2..529677c 100644 (file)
@@ -1,3 +1,7 @@
+2010-10-25  Glenn Morris  <rgm@gnu.org>
+
+       * Makefile.in (SOME_MACHINE_LISP): Remove easymenu.elc.
+
 2010-10-24  Glenn Morris  <rgm@gnu.org>
 
        * w32fns.c (Fx_synchronize, Fx_change_window_property)
index 87abc9e..4d45248 100644 (file)
@@ -590,8 +590,7 @@ SOME_MACHINE_LISP = ../lisp/mouse.elc \
   ../lisp/term/common-win.elc \
   ../lisp/term/x-win.elc \
   ../lisp/term/pc-win.elc ../lisp/term/internal.elc \
-  ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc \
-  ../lisp/emacs-lisp/easymenu.elc
+  ../lisp/term/ns-win.elc ../lisp/term/w32-win.elc
 
 ## Construct full set of libraries to be linked.
 ## Note that SunOS needs -lm to come before -lc; otherwise, you get