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

From: Eli Zaretskii <[email-masked]>
Date: Thu, 22 Sep 2022 17:03:41 +0300

> Date: Thu, 22 Sep 2022 13:08:25 +0000
> From: Gregory Heytings <[email-masked]>
> cc: Lars Ingebrigtsen <[email-masked]>, [email-masked], 
>     [email-masked]
> 
> >> They use faces to get at the colours, but nothing beyond that, I think?
> >
> > Yes, only the colors.  But accessing the faces means you cannot do that 
> > while the Lisp machine is doing something.
> 
> But would it be really necessary to access these faces each time the 
> indicator would be drawn?  We could for example cache the values of these 
> two colors somewhere

Faces are already cached.  But for each cache there comes a time when
it must be flushed and/or refreshed, and during those times you cannot
safely use the cache.

> or decide to do something different and use a 
> specific function to set these two colors without going through the whole 
> face machinery, something like (set-busy-indicator-colors FOREGROUND 
> BACKGROUND).

As soon as we allow set-busy-indicator-colors or somesuch, we have a
problem with Lisp programs doing that exactly when there's time to
redraw the indicator.