emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Fix placement of toggle and radio button in Lucid menu.


From: Eli Zaretskii
Subject: Re: [PATCH] Fix placement of toggle and radio button in Lucid menu.
Date: Mon, 28 Feb 2022 15:21:59 +0200

> From: Manuel Giraud <manuel@ledu-giraud.fr>
> Cc: Eli Zaretskii <eliz@gnu.org>,  emacs-devel@gnu.org
> Date: Mon, 28 Feb 2022 09:45:49 +0100
> 
> Here for each menu entry, I have prepend two unicode characters ('FULL
> BLOCK' and 'MEDIUM SHADE') that, I think, is showing the full extend of
> a given font.
> 
> With those "full block", we can see that the toggle button is correctly
> placed: at the middle between the baseline and the top of the font.

Is it?  I still see the toggle button too high, even if we consider
the higher block characters.

>    1- Compute the ascent of each label (ie. max ascent of each
>       character) and use this value to place the button;
> 
>    2- Compute a global ascent for all labels in all menus and use this
>       value;
> 
>    3- Place the toggle button on the baseline (not at middle of baseline
>       and top);
> 
>    4- Leave it as is.
> 
> Regarding option 1, I understood that having the metrics of a given
> character is not yet available in the backend. Plus we probably end up
> with non uniformly placed buttons.
> 
> Option 2: Fix the "uniformly placed buttons" but is that even possible
> given how dynamic Emacs menus are?
> 
> As you guess, option 3 has my favour. It fixes my aesthetic issue
> without more computation. In fact, I don't even undertand why those
> buttons need to be placed in at the middle of the baseline and the top
> in the first place (maybe I need an explanation here).
> 
> If we stay with option 4, I still think that the toggle button should be
> 2/3 of the ascent and not 2/3 of the height of the font.

I proposed to have a variable users could tweak precisely because it
is a very simple solution that can satisfy everyone.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]