changeset 98594:b40f8a9232b9

(tool-bar-mode): Only change tool-bar-lines on graphical terminals. (tool-bar-setup): No-op if called on a tty.
author Chong Yidong <cyd@stupidchicken.com>
date Thu, 09 Oct 2008 19:30:47 +0000
parents 07dedfc8a63c
children d26dc6b50206
files lisp/tool-bar.el
diffstat 1 files changed, 15 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/tool-bar.el	Thu Oct 09 19:29:42 2008 +0000
+++ b/lisp/tool-bar.el	Thu Oct 09 19:30:47 2008 +0000
@@ -52,12 +52,13 @@
   :global t
   :group 'mouse
   :group 'frames
-  (and (display-images-p)
-       (modify-all-frames-parameters (list (cons 'tool-bar-lines
-						 (if tool-bar-mode 1 0))))
-       (if (and tool-bar-mode
-		(display-graphic-p))
-	   (tool-bar-setup))))
+  (if tool-bar-mode
+      (progn
+  	(dolist (frame (frame-list))
+  	  (if (display-graphic-p frame)
+  	      (set-frame-parameter frame 'tool-bar-lines 1)))
+  	(tool-bar-setup))
+    (modify-all-frames-parameters (list (cons 'tool-bar-lines 0)))))
 
 ;;;###autoload
 ;; Used in the Show/Hide menu, to have the toggle reflect the current frame.
@@ -257,10 +258,16 @@
 ;;; Set up some global items.  Additions/deletions up for grabs.
 
 (defvar tool-bar-setup nil
-  "Set to t if the tool-bar has been set up by `tool-bar-setup'.")
+  "Non-nil if the tool-bar has been set up by `tool-bar-setup'.")
 
 (defun tool-bar-setup (&optional frame)
-  (unless tool-bar-setup
+  (unless (or tool-bar-setup
+	      (null tool-bar-mode)
+	      ;; No-op if the initial frame is on a tty, deferring
+	      ;; action until called from x-create-frame-with-faces.
+	      ;; Tool-bar icons can depend on X settings, which are
+	      ;; initially unavailable in this case.
+	      (not (display-graphic-p frame)))
     (with-selected-frame (or frame (selected-frame))
       ;; People say it's bad to have EXIT on the tool bar, since users
       ;; might inadvertently click that button.