Subject: Re: bug#60510: 30.0.50; [PATCH] Do not put pointer on first menu item in no-toolkit build

From: Manuel Giraud <[email-masked]>
Date: Tue, 03 Jan 2023 14:57:31 +0100

Eli Zaretskii <[email-masked]> writes:

[...]

> Sorry, I don't understand: AFAIK oldXMenu is not used by any build
> other than the no-toolkit build.  So why cannot you modify it?
>
> What I wrote above doesn't prevent anyone from making changes, I was
> just thinking aloud whether we should make this particular change.

Yes but if this simple functional change cannot make it into oldXMenu I
don't think that any other will do.  But it might be a good thing: as
you and Po Lu pointed out, oldXMenu is this way since the dawn of time
so it should stay as is forever.

I'd like to tackle having another no toolkit backend but I don't know if
I'm up to such a task.

> To answer your more general question: to use faces, you must use the
> Emacs display code to generate the glyphs and deliver them to the
> glass.  Basically, you must abandon oldXMenu and re-implement the
> menus using the Emacs display code.  The main problem here is that
> menus are drop-down, i.e., they overlap stuff already on the glass,
> and Emacs currently doesn't allow that.  (TTY menus pull that trick,
> but they can only get away because all the characters have the same
> dimensions on TTY frames, something that is not true for X display,
> assuming you want to use font parts of the faces, not just their
> colors.)  So you'd need some other trick here, maybe using child
> frames?

When I said it was a pipe dream :-)
-- 
Manuel Giraud