Subject: 23.0.60; tool-bar is shown with tool-bar-mode off
From: "Drew Adams" <[email-masked]>
To: <[email-masked]>
Date: Wed, 31 Dec 2008 14:15:46 -0800

This is a regression wrt Emacs 20, 21, and 22.
 
1. Put this code in a file named `bug-tool-bar.el':
 
(tool-bar-mode -1)
(defvar my-minibuffer-frame nil "")
(defun foo () ""
  (interactive)
  (setq default-frame-alist
        (append (list (cons 'tool-bar-lines 1))
                default-frame-alist))
  (setq pop-up-frames      t
        pop-up-frame-alist (append default-frame-alist
                                   pop-up-frame-alist))
  (setq minibuffer-frame-alist
        (append (list (cons 'minibuffer 'only))
                minibuffer-frame-alist))
  (if my-minibuffer-frame
      (modify-frame-parameters my-minibuffer-frame
                               (list (cons 'minibuffer 'only)))
    (setq my-minibuffer-frame
          (let ((after-make-frame-functions nil))
            (make-frame (list (cons 'minibuffer 'only)))))))
 
It doesn't matter where the (tool-bar-mode -1) is, and you could
alternatively leave it out altogether and then do `M-x tool-bar-mode'
to turn it off (step 3).
 
2. Start Emacs this way:
 
runemacs.exe -Q --debug-init -l "bug-tool-bar.el" -f "foo"
 
You get one frame with buffer *scratch* and a standalone minibuffer
frame. Neither frame has a tool bar. However, `tool-bar-mode' is t -
it should be nil. You can see this by typing `tool-bar-mode' in buffer
*scratch* and using `C-x C-e'.
 
3. Optional step: `M-x tool-bar-mode'. This turns off tool-bar mode,
though it should already have been off because of the code in
`bug-tool-bar.el'.
 
4. Do `C-x 4 f some-file.el'. The file is visited in a new frame, and
the frame has a tool bar. And tool-bar mode is now on. And this is so
regardless of whether you skip step 3.

The mode should remain off, and no tool bar should be shown.

In GNU Emacs 23.0.60.1 (i386-mingw-nt5.1.2600)
 of 2008-12-30 on LENNART-69DE564
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --no-opt --cflags -Ic:/g/include
-fno-crossjumping'