Subject: bug#1754: 23.0.60; tool-bar is shown with tool-bar-mode off

From: "Drew Adams" <[email-masked]>
Date: Thu, 1 Jan 2009 13:51:03 -0800

> The problem is, I'm thinking now, that the entry 
> (tool-bar-lines . 1) in
> `pop-up-frames-alist' is being used for the creation of new 
> frames when
> `pop-up-frames' is non-nil. If that is happening, it is 
> incorrect behavior, on
> two counts:
> 
> 1. `tool-bar-mode' should be modal and affect all existing 
> and subsequent frames, regardless of their default alist 
> (`special-display-frame-alist', `pop-up-frame-alist', or
> `default-frame-alist').
> 
> 2. `pop-up-frame-alist' should not be used for creating 
> normal new frames.
> 
> The "pop-up" in each of the names `pop-up-frames' and 
> `pop-up-frames-alist' means very different things.
> `pop-up-frames-alist' is not about creating normal
> new frames - `default-frame-alist' should be used for that. 
> And `pop-up-frames' simply changes things like `C-x 4 f'
> to act like `C-x 5 f' - it has nothing to do with popup frames.
> 
> `pop-up-frames-alist' is about special, "popup" frames (which 
> is why it is a separate alist, like `special-display-frame-alist'):
> 
> "Alist of frame parameters used when creating pop-up frames.
> Pop-up frames are used for completions, help, and the like.
> This variable can be set in your init file, like this:
>   (setq pop-up-frame-alist '((width . 80) (height . 20)))
> These supersede the values given in `default-frame-alist',
> for pop-up frames."

I think the bug was introduced when someone translated the C code definition of
`display-buffer' to Lisp. This code was added gratuitously, and it causes
`pop-up-frames' to use `pop-up-frame-alist':

(let...
  ;; On text-only terminals do not pop up a new frame when
  ;; `pop-up-frames' equals graphic-only.
  (use-pop-up-frames (if (eq pop-up-frames 'graphic-only)
                         (display-graphic-p)
                       pop-up-frames))

`pop-up-frames' being non-nil should in no way cause `C-x 5 b' etc. to use
`pop-up-frame-alist' for the new frame creation.