In my setup, I make non-focused windows semi-transparent (using Xmonad
and its compose support). This used to work perfectly, but with the
recent-ish update of emacs from 28.2 to 29.1, this broke. (Basically,
what's described on
https://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Hooks-FadeInactive.html)
I've bisected this down to:
commit b299f173490f5c51476ad3c8436b19bb091c1b00
Author: Po Lu <luangruo@yahoo.com>
Date: Tue May 10 09:32:59 2022 +0800
Update alpha frame parameter when the window manager changes it
* src/xfns.c (x_set_alpha): New function. Set
`alpha_identical_p' flag.
(x_frame_parm_handlers): Use it to handle `alpha' instead.
* src/xterm.c (x_set_frame_alpha): Make tests against current
alpha safer.
(handle_one_xevent): Set frame alpha when alpha property
changes.
* src/xterm.h (struct x_output): New flag `alpha_identical_p'.
src/xfns.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
src/xterm.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++--
src/xterm.h | 4 ++++
3 files changed, 108 insertions(+), 3 deletions(-)
which seems like a plausible change for causing such a bug.
Note that the transparency of the window corrects itself if there's a
message in the minibuffer, so it seems like emacs isn't always picking
up the change in transparency which happens as it is being focused.