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

From: "Drew Adams" <[email-masked]>
Date: Wed, 12 Sep 2012 08:33:46 -0700

>  >> IMHO it should update a frame iff that frame has no 
>  >> `menu-bar-lines' frame parameter.'
>  >
>  > Why?  Why shouldn't a user be ABLE to turn on/off showing 
>  > the menu bar in all existing frames?
> 
> Because this way we'd have a consistent interface: The presence of a
> frame parameter would signal "leave this frame alone".

That's inconsistent with the convention that absence of a frame parameter is
equivalent to its presence with a nil value.  It is similar to proposing that we
give some  special signification to the absense of a key in an alist, as opposed
to a key with value nil.

Please find another way to say "leave this frame alone".  That should not be
difficult, and it should be possible to find something that has general
applicability (i.e., any frames, any frame parameter, any function that affects
a frame parameter).

More precisely, we should be able to say "leave this frame alone for parameter
BLAH".  And even perhaps "make function FOO leave this frame alone for parameter
BLAH".  In this case, FOO is `menu-bar-mode' and BLAH is `menu-bar-lines'.

And this should be 100% orthogonal to the presence or absence of the parameter,
and 100% orthogonal to what the parameter's current value (nil or not) might be.

>  > One way or the other, we should find ways for users to 
>  > alternatively easily do that (affecting all existing
>  > frames) OR protect some frames from that toggling.
> 
> Do you have a practical use case where my proposal harms?

You are unnecessarily coupling things that do not belong together.  That's a bad
idea.  Whether a given parameter should be affected  by a given function is
logically unrelated to whether the parameter is currently present for a given
frame, and is logically unrelated to the parameter's current value for a given
frame.