Subject: bug#31020: 27.0; Please provide a way to know about menu-bar wrapping

From: Drew Adams <[email-masked]>
Date: Mon, 2 Apr 2018 06:25:30 -0700 (PDT)

> > When a frame is narrower than the text in the
> > menu-bar, that text is wrapped.  And yet the value of frame parameter
> > `menu-bar-lines' is not increased (which is good).
> >
> > It would be good to be able to know (from Elisp) how many "visual"
> > (effective) menu-bar lines there are currently, that is, how many times
> > the menu-bar text is wrapped.  (It is typically wrapped zero or one
> > time, producing text that appears visually to be two lines.)
> 
> I don't understand why you think that the menu-bar-lines parameter
> should not be it.  AFAIU, the problem with setting it (or any other
> frame parameter) to the actual value is that with many toolkits Emacs
> simply doesn't know the correct value.  But maybe Martin will have
> some trick up his sleeves.

I think it's helpful to distinguish (1) the actual,
current number of lines used, reflecting any possible
wrapping, from (2) the user's setting of how many
lines should be used for the menu-bar.

How those are distinguished doesn't matter to me so
much.

And if you decide that there is no sense in such a
distinction, and that the parameter value should be
automatically changed, dynamically, as a frame's
width is changed (e.g. to force or remove wrapping),
then that would probably be OK too.

The problem, at least on MS Windows, is that the
menu-bar wraps, and there is no way (AFAIK) to know
from Lisp who many actual lines are currently used
to show the menu-bar.

This is an old problem, as you know.  It would be
really good to finally put it to bed, if possible.