Subject: Re: bug#51490: Show an indicator when Emacs is busy somewhere in the Emacs window

From: Eli Zaretskii <[email-masked]>
Date: Wed, 21 Sep 2022 17:01:53 +0300

> From: Lars Ingebrigtsen <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Wed, 21 Sep 2022 15:32:39 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > That's true, but if Lisp cannot run, neither can redisplay.  They both
> > access the internal Emacs state: buffers, variables, etc.  Even to
> > replace a single glyph, you'd need to access faces, right?
> 
> I'm not sure that we have to?  That's why I wondered whether we could
> somehow get away with just altering the glyph matrix...

We barely get away with that on TTY frames (that's how TTY menus are
implemented).  On GUI frames, I don't think it's feasible, not with
the code we have now.

As for not accessing any Lisp data: do you really believe our users
will let us deprive them of even the minimal customization
capabilities, like determining the face of this indicator and how it
generally looks?  I sincerely doubt that.

> > Also, poking a single glyph on a GUI frame is unsafe, because no one
> > can be sure the new glyph will have the same metrics as the old one.
> 
> I was thinking way more primitive than that -- just altering the
> pixelish data on some level.  I.e., I wouldn't want to display the
> characters | \ etc, but instead some pre-calculated pixel data.

We don't write pixels to the glass, we call GUI APIs to do that.