;;; menu-bar.el --- define a default menu bar
;; Copyright (C) 1993, 1994, 1995, 2000, 2001, 2002, 2003, 2004,
-;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
;; Author: RMS
;; Maintainer: FSF
\f
;; The "File" menu items
(define-key menu-bar-file-menu [exit-emacs]
- '(menu-item "Exit Emacs" save-buffers-kill-emacs
- :keys "C-x C-c"
+ '(menu-item "Quit" save-buffers-kill-terminal
:help "Save unsaved buffers, then exit"))
(define-key menu-bar-file-menu [separator-exit]
(defvar yank-menu (cons "Select Yank" nil))
(fset 'yank-menu (cons 'keymap yank-menu))
(define-key menu-bar-edit-menu [paste-from-menu]
- '(menu-item "Paste From Kill Menu" yank-menu
+ '(menu-item "Paste from Kill Menu" yank-menu
:enable (and (cdr yank-menu) (not buffer-read-only))
:help "Choose a string from the kill ring and paste it"))
(define-key menu-bar-edit-menu [paste]
'(menu-item "Paste" yank
- :enable (and
- ;; Emacs compiled --without-x doesn't have
- ;; x-selection-exists-p.
- (fboundp 'x-selection-exists-p)
- (x-selection-exists-p) (not buffer-read-only))
+ :enable (and (or
+ ;; Emacs compiled --without-x doesn't have
+ ;; x-selection-exists-p.
+ (and (fboundp 'x-selection-exists-p)
+ (x-selection-exists-p))
+ kill-ring)
+ (not buffer-read-only))
:help "Paste (yank) text most recently cut/copied"))
(define-key menu-bar-edit-menu [copy]
'(menu-item "Copy" menu-bar-kill-ring-save
'(and mark-active (not buffer-read-only)))
(put 'clipboard-kill-ring-save 'menu-enable 'mark-active)
(put 'clipboard-yank 'menu-enable
- '(and (or (and (fboundp 'x-selection-exists-p)
- (x-selection-exists-p))
+ '(and (or (not (fboundp 'x-selection-exists-p))
+ (x-selection-exists-p)
(x-selection-exists-p 'CLIPBOARD))
- (not buffer-read-only)))
+ (not buffer-read-only)))
(defun clipboard-yank ()
"Insert the clipboard contents, or the last stretch of killed text."
(mouse-select-font)))
spec)
(when font
- (set-face-attribute 'default nil :font font)
+ ;; Be careful here: when set-face-attribute is called for the
+ ;; :font attribute, Emacs tries to guess the best matching font
+ ;; by examining the other face attributes (Bug#2476).
+ (set-face-attribute 'default (selected-frame)
+ :width 'normal
+ :weight 'normal
+ :slant 'normal
+ :font font)
+ (let ((font-object (face-attribute 'default :font)))
+ (dolist (f (frame-list))
+ (and (not (eq f (selected-frame)))
+ (display-graphic-p f)
+ (set-face-attribute 'default f :font font-object)))
+ (set-face-attribute 'default t :font font-object))
(setq spec (list (list t (face-attr-construct 'default))))
(put 'default 'customized-face spec)
(custom-push-theme 'theme-face 'default 'user 'set spec)
(list 'menu-item "Mule (Multilingual Environment)" mule-menu-keymap
;; Most of the MULE menu actually does make sense in unibyte mode,
;; e.g. language selection.
-;;; ':visible 'default-enable-multibyte-characters
+;;; :visible '(default-value 'enable-multibyte-characters)
))
;(setq menu-bar-final-items (cons 'mule menu-bar-final-items))
;(define-key menu-bar-options-menu [preferences]
(define-key menu-bar-describe-menu [mule-diag]
'(menu-item "Show All of Mule Status" mule-diag
- :visible default-enable-multibyte-characters
+ :visible (default-value 'enable-multibyte-characters)
:help "Display multilingual environment settings"))
(define-key menu-bar-describe-menu [describe-coding-system-briefly]
'(menu-item "Describe Coding System (Briefly)"
describe-current-coding-system-briefly
- :visible default-enable-multibyte-characters))
+ :visible (default-value 'enable-multibyte-characters)))
(define-key menu-bar-describe-menu [describe-coding-system]
'(menu-item "Describe Coding System..." describe-coding-system
- :visible default-enable-multibyte-characters))
+ :visible (default-value 'enable-multibyte-characters)))
(define-key menu-bar-describe-menu [describe-input-method]
'(menu-item "Describe Input Method..." describe-input-method
- :visible default-enable-multibyte-characters
+ :visible (default-value 'enable-multibyte-characters)
:help "Keyboard layout for specific input method"))
(define-key menu-bar-describe-menu [describe-language-environment]
(list 'menu-item "Describe Language Environment"
(let (enable-local-variables)
(view-file (expand-file-name "MORE.STUFF"
data-directory))
- (goto-address)))
+ (goto-address-mode 1)))
(define-key menu-bar-help-menu [sep2]
'("--"))
(define-key menu-bar-help-menu [external-packages]
(> count 1)))
(defcustom yank-menu-length 20
- "*Maximum length to display in the yank-menu."
+ "Maximum length to display in the yank-menu."
:type 'integer
:group 'menu)
;;; Buffers Menu
(defcustom buffers-menu-max-size 10
- "*Maximum number of entries which may appear on the Buffers menu.
+ "Maximum number of entries which may appear on the Buffers menu.
If this is 10, then only the ten most-recently-selected buffers are shown.
If this is nil, then all buffers are shown.
A large number or nil slows down menu responsiveness."
:group 'menu)
(defcustom buffers-menu-buffer-name-length 30
- "*Maximum length of the buffer name on the Buffers menu.
+ "Maximum length of the buffer name on the Buffers menu.
If this is a number, then buffer names are truncated to this length.
If this is nil, then buffer names are shown in full.
A large number or nil makes the menu too wide."