Subject: bug#12406: 24.2.50; frame parameter `menu-bar-lines' and `menu-bar-mode'

From: Stefan Monnier <[email-masked]>
Date: Mon, 10 Sep 2012 16:39:44 -0400

> emacs -Q
> (setq special-display-frame-alist '((menu-bar-lines . 1))
>       special-display-regexps     '("[ ]?[*][^*]+[*]"))
> (menu-bar-mode 0)
> (describe-variable 'menu-bar-mode)
 
> You will see that:
 
> * Buffer *Help* is displayed in its own frame.
> * It says that menu-bar-mode is nil (which it is).
> * The frame has a menu bar.

The core of the problem is that menu-bar-mode is global, whereas the
presence/absence of a menu-bar is actually a frame property (and it's
important to me that it be so, because I have some frames with
a menu-bar and some without).

So `menu-bar-mode' is a lie.  One possible fix is to make menu-bar-mode
into a frame-local mode, so calling menu-bar-mode would only affect the
current frame (and maybe also the future frames) but not the other
existing frames.

        Stefan