From 4ad11f8ccbec3bda22e53f867e8ed7de0de1a085 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Mon, 5 Jul 2010 13:54:13 -0400 Subject: [PATCH] Set default-frame-alist, if necessary, in menu/tool-bar-mode. * menu-bar.el (menu-bar-mode): * tool-bar.el (tool-bar-mode): Replace default-frame-alist element if it has been set. --- lisp/ChangeLog | 4 ++++ lisp/menu-bar.el | 13 +++++++++---- lisp/tool-bar.el | 16 +++++++++++----- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8e75e6634fe..b2332cdd349 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2010-07-05 Chong Yidong + * menu-bar.el (menu-bar-mode): + * tool-bar.el (tool-bar-mode): Replace default-frame-alist element + if it has been set. + * mouse.el (mouse-drag-track): Call mouse-start-end to handle word/line selection (Bug#6565). diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 20ad50c9048..f94b67a6e89 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1937,15 +1937,20 @@ turn on menu bars; otherwise, turn off menu bars." ;; Turn the menu-bars on all frames on or off. (let ((val (if menu-bar-mode 1 0))) (dolist (frame (frame-list)) - (set-frame-parameter frame 'menu-bar-lines val))) - + (set-frame-parameter frame 'menu-bar-lines val)) + ;; If the user has given `default-frame-alist' a `menu-bar-lines' + ;; parameter, replace it. + (if (assq 'menu-bar-lines default-frame-alist) + (setq default-frame-alist + (cons (cons 'menu-bar-lines val) + (assq-delete-all 'menu-bar-lines + default-frame-alist))))) ;; Make the message appear when Emacs is idle. We can not call message ;; directly. The minor-mode message "Menu-bar mode disabled" comes ;; after this function returns, overwriting any message we do here. (when (and (called-interactively-p 'interactive) (not menu-bar-mode)) (run-with-idle-timer 0 nil 'message - "Menu-bar mode disabled. Use M-x menu-bar-mode to make the menu bar appear.")) - menu-bar-mode) + "Menu-bar mode disabled. Use M-x menu-bar-mode to make the menu bar appear."))) (defun toggle-menu-bar-mode-from-frame (&optional arg) "Toggle menu bar on or off, based on the status of the current frame. diff --git a/lisp/tool-bar.el b/lisp/tool-bar.el index eaa8551b019..4b83b07754d 100644 --- a/lisp/tool-bar.el +++ b/lisp/tool-bar.el @@ -52,13 +52,19 @@ conveniently adding tool bar items." :global t :group 'mouse :group 'frames - ;; Make tool-bar even if terminal is non-graphical (Bug#1754). (let ((val (if tool-bar-mode 1 0))) (dolist (frame (frame-list)) - (set-frame-parameter frame 'tool-bar-lines val))) - (when tool-bar-mode - (if (= 1 (length (default-value 'tool-bar-map))) ; not yet setup - (tool-bar-setup)))) + (set-frame-parameter frame 'tool-bar-lines val)) + ;; If the user has given `default-frame-alist' a `tool-bar-lines' + ;; parameter, replace it. + (if (assq 'tool-bar-lines default-frame-alist) + (setq default-frame-alist + (cons (cons 'tool-bar-lines val) + (assq-delete-all 'tool-bar-lines + default-frame-alist))))) + (and tool-bar-mode + (= 1 (length (default-value 'tool-bar-map))) ; not yet setup + (tool-bar-setup))) ;;;###autoload ;; Used in the Show/Hide menu, to have the toggle reflect the current frame. -- 2.39.2