Subject: Re: bug#57012: Activating versus raising frames

From: Daniel Colascione <[email-masked]>
Date: Sun, 07 Aug 2022 00:10:01 -0400

On Sun, 2022-08-07 at 11:29 +0800, Po Lu wrote:
> Daniel Colascione <[email-masked]> writes:
> 
> > On August 6, 2022 23:03:04 Po Lu <[email-masked]> wrote:
> > 
> >  Daniel Colascione <[email-masked]> writes:
> > 
> >  pgtk also runs on X, and the problem must be solved there in some
> >  manner.
> > 
> >  It does not.  We do not support running the PGTK build on X (the
> >  selection code doesn't work on X, for example), and there is no way to
> >  "touch" the user time on that platform without relying on X11-specific
> >  code.  At present, it's not even possible to include gdk/gdkx.h there
> >  due to typedef conflicts with dispextern.h
> > 
> > I'm surprised to hear that considering that many other GTK
> > applications manage selections adequately. If the intent of pgtk is to
> > run only on Wayland, you should break the pgtk build at runtime if
> > it's running under X11, and probably rename it too --- because "pure
> > GTK" sounds like it should rely only on things GTK provides and that
> > it should therefore run anywhere GTK does. If in fact it's just a
> > Wayland window system implementation, call it that.
> 
> It does break at runtime when run under X11: just type "C-x h" in a
> large file (like xdisp.c), and try to insert the region into another
> program with mouse-2.
> 
> Other GTK programs run well because simply don't provide the amount of
> features that Emacs does.  Their users don't notice various problems
> caused by GTK, including "C-S-u" being read as "C-u", or "kp-home" being
> translated by the input method into "home".  But our users do, which is
> why we do not support X11 on the PGTK builds, since the regular X build
> works much better.
> 
> It's documented to only support window systems that aren't X11, such as
> Wayland and Broadway.

Then emit an error message at runtime if you detect them running on
X11 telling users that things will mysteriously. To let them build
and run pgtk initially, then get frustrated with a few edge cases, is
doing them a disservice. They're not going to read that
documentation.