From 6a5c21753e3918152ca4abc50291d6e628e89f6c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 24 Oct 2010 17:48:26 -0700 Subject: [PATCH] Move ns-win.el's rather wacky menu adjustments to menu-bar.el. * lisp/term/ns-win.el: Do not require easymenu. (menu-bar-edit-menu) : : Move adjustments to menu-bar.el. * lisp/menu-bar.el (menu-bar-edit-menu) : : 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 | 4 ++++ lib-src/makefile.w32-in | 1 - lisp/ChangeLog | 11 ++++++++++- lisp/loadup.el | 4 +--- lisp/menu-bar.el | 41 ++++++++++++++++++++++++++++++----------- lisp/term/ns-win.el | 36 ------------------------------------ src/ChangeLog | 4 ++++ src/Makefile.in | 3 +-- 8 files changed, 50 insertions(+), 54 deletions(-) diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 9e43da96c5c..a4b0ff37d07 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,7 @@ +2010-10-25 Glenn Morris + + * makefile.w32-in (OTHER_PLATFORM_SUPPORT): Remove easymenu.elc. + 2010-10-23 Glenn Morris * digest-doc.c, sorted-doc.c: Remove files. diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in index dc6406d7025..5591f0edbed 100644 --- a/lib-src/makefile.w32-in +++ b/lib-src/makefile.w32-in @@ -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 diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9fd13d49ca4..96c8df73ee7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,7 +1,16 @@ +2010-10-25 Glenn Morris + + * term/ns-win.el: Do not require easymenu. + (menu-bar-edit-menu) : + : Move adjustments to menu-bar.el. + * menu-bar.el (menu-bar-edit-menu) : + : Move ns-win's adjustments here. + * loadup.el [ns]: Do not load easymenu. + 2010-10-24 Chong Yidong * 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/. diff --git a/lisp/loadup.el b/lisp/loadup.el index 719f8be9c99..775b6ee4aea 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -233,9 +233,7 @@ (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. diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 0659ae98717..9d8e4749087 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -361,6 +361,11 @@ (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)) @@ -453,30 +458,46 @@ ,(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) @@ -486,7 +507,6 @@ (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 diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index acd6bda60f0..ccbe9be7f9d 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -52,13 +52,9 @@ (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)) diff --git a/src/ChangeLog b/src/ChangeLog index a0aa4a21ff1..529677cb5f4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2010-10-25 Glenn Morris + + * Makefile.in (SOME_MACHINE_LISP): Remove easymenu.elc. + 2010-10-24 Glenn Morris * w32fns.c (Fx_synchronize, Fx_change_window_property) diff --git a/src/Makefile.in b/src/Makefile.in index 87abc9ea734..4d45248b396 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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 -- 2.39.5