unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'martin rudalics'" <rudalics@gmx.at>
Cc: 1754@emacsbugs.donarmstrong.com
Subject: bug#1754: 23.0.60; tool-bar is shown with tool-bar-mode off
Date: Thu, 1 Jan 2009 13:28:17 -0800	[thread overview]
Message-ID: <008801c96c57$dcbd5540$0200a8c0@us.oracle.com> (raw)
In-Reply-To: <495CE033.70808@gmx.at>

>  > (tool-bar-mode -1)
> [...]
>  >   (setq default-frame-alist
>  >         (append (list (cons 'tool-bar-lines 1))
>  >                 default-frame-alist))
> 
> Inherently, you're painting yourself into a corner by simultaneously
> demanding and rejecting toolbars.  Moreover, that last assignment gets
> you a second entry for `tool-bar-lines' in 
> `default-frame-alist' (and we have received _lots_ of mails
> from you complaining about such duplicate entries before).

No, as a result of those "_lots_ of mails" I sent, that bug was finally fixed.
No duplicate entries are created by Emacs since 2008-12-31.

However, you are correct that the code above creates a second entry for
`tool-bar-lines'. That should not be a problem - the first entry is used (it is
an alist, after all). That is, there is no corner. The latest change to the
parameter `tool-bar-lines' should _always_ prevail - regardless of whether you
use `modify-frame-parameters' or (setq default-frame-alist...) or you call
`tool-bar-mode'.

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."

> However, you do _not_ set `initial-frame-alist' simultaneously,
> so you won't get a toolbar for the first frame which is the
> correct behavior since you have toggled tool-bar-mode off 
> before and only that counts for the initial frame (unless you
> explicitly override it).  Since `default-frame-alist' contains
> a tool-bar-lines entry you will get a toolbar for future frames
> which is correct as well.

Sorry, all of that text is irrelevant to my bug report. I am not concerned about
the initial frame.

> That said, the behavior of Emacs _is_ wrong because it should not say
> that `tool-bar-mode' is on when there are no toolbars.

More importantly, if you turn the mode off, new frames should also not have tool
bars. That is the point here.

> The reason is that `tool-bar-mode' does
> 
>    (if tool-bar-mode
>        (progn
>    	    (dolist (frame (frame-list))
>    	     (if (display-graphic-p frame)
>    	         (set-frame-parameter frame 'tool-bar-lines 1)))
> 	(if (= 1 (length (default-value 'tool-bar-map))) ; not yet setup
> 	    (tool-bar-setup)))
>      (modify-all-frames-parameters (list (cons 'tool-bar-lines 0)))))
> 
> so you can easily see that for turning `tool-bar-mode' off, 
> default and initial frame parameters are set. For turning it on, only the
> parameters of the existing frames are set and _no_ default or initial
> parameters.

That might be at least partly responsible for the bug.

Again, the current bugged behavior:

1. is a regression - the behavior was correct in Emacs 22

2. does not correspond to the behavior of `menu-bar-mode', which is correct in
Emacs 23, like 22

> Since the `display-graphic-p' test is not useful 
> anyway, I propose the attached patch.

I think the logic of your patch is needed, but it is not sufficient.

I tried your patch (by just redefining tool-bar-mode after running my test
case), but it unfortunately does not seem to fix the problem. I suspect the
remaining problem is as I indicated above: `pop-up-frame-alist' is being used
when it shouldn't be used - to open normal frames (not popup frames).

The Emacs 22.3 code works fine in all regards.








  parent reply	other threads:[~2009-01-01 21:28 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <496873E5.9080601@gmx.at>
2008-12-31 22:15 ` bug#1754: 23.0.60; tool-bar is shown with tool-bar-mode off Drew Adams
2009-01-01 15:24   ` martin rudalics
2009-01-01 15:53     ` Jason Rumney
2009-01-01 16:09       ` martin rudalics
2009-01-01 21:28     ` Drew Adams [this message]
2009-01-01 21:51       ` Drew Adams
2009-01-02  7:52         ` martin rudalics
2009-01-02  7:52       ` martin rudalics
2009-01-03  3:12         ` Stefan Monnier
2009-01-03 10:13           ` martin rudalics
2009-01-05  4:10             ` Stefan Monnier
2009-01-05  7:57               ` martin rudalics
2009-01-05 22:20                 ` Stefan Monnier
2009-01-06 13:37                   ` martin rudalics
2009-01-09 19:37                   ` martin rudalics
2009-01-10  2:29                     ` Stefan Monnier
2009-01-10 10:04                       ` martin rudalics
2009-01-10 22:38                         ` Stefan Monnier
2009-01-11 11:22                           ` martin rudalics
2009-01-11 14:56                             ` Stefan Monnier
2009-01-11 17:14                               ` martin rudalics
2009-01-11 23:12                                 ` Stefan Monnier
2009-01-12  9:58                                   ` martin rudalics
2009-01-12 15:23                                     ` Stefan Monnier
2009-01-12 16:00                                       ` martin rudalics
2009-01-12 18:29                                         ` Stefan Monnier
2009-01-12 19:33                                           ` Lennart Borgman
2009-01-12 20:57                                             ` Stefan Monnier
2009-01-12 21:59                                           ` Drew Adams
2009-01-14 14:20                                           ` martin rudalics
2009-01-17 18:33             ` Drew Adams
2009-01-09 19:37   ` martin rudalics
2009-01-09 20:21     ` Chong Yidong
2009-01-10 10:20   ` bug#1754: marked as done (23.0.60; tool-bar is shown with tool-bar-mode off) Emacs bug Tracking System
2009-01-01  3:05 bug#1754: 23.0.60; tool-bar is shown with tool-bar-mode off Chong Yidong
2009-01-01  5:17 ` Drew Adams
2009-01-01  7:03   ` Chong Yidong
2009-01-01 21:28     ` Drew Adams
2009-01-01 21:51       ` Drew Adams
2009-01-02  0:01       ` Jason Rumney
2009-01-02  1:14         ` Drew Adams
2009-01-02  2:27           ` Drew Adams
2009-01-02  2:47             ` Drew Adams
2009-01-02 11:57             ` Jason Rumney
2009-01-02 14:50               ` martin rudalics
2009-01-01  7:36   ` Jason Rumney
2009-01-01 21:28     ` Drew Adams
2009-01-01 23:53       ` Jason Rumney
2009-01-02  1:14         ` Drew Adams
  -- strict thread matches above, loose matches on Subject: below --
2009-01-01 13:47 grischka
2009-01-01 13:51 ` Jason Rumney
2009-01-01 14:30   ` grischka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='008801c96c57$dcbd5540$0200a8c0@us.oracle.com' \
    --to=drew.adams@oracle.com \
    --cc=1754@emacsbugs.donarmstrong.com \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).