Subject: bug#75930: 30.0.92; Setting default frame background color messes up mouse pointer

From: Lars Rustand <[email-masked]>
Date: Sat, 01 Feb 2025 08:51:31 +0100

Po Lu <[email-masked]> writes:

> Lars Rustand <[email-masked]> writes:
>
>> Part 2 is that the act of setting a default frame background color
>> causes x_set_mouse_color to even be called in the first place. The mouse
>> color should obviously not be changed as a side effect of changing the
>> frame background color. These are two very different things that has
>> nothing to do with eachother.
>
> Obviously they should, for otherwise the mouse cursor may become
> invisible against the background of the frame.

Your argument makes sense, but even if we accept that as correct, there
are multiple things wrong here. Why is there only two out of six
different ways to change the background that actually causes this to
happen?

(Even though I think your argument is valid, I still don't share your
opinon. I think this is unexpected behaviour from an X application. I
have never seen any other application which modifies my mouse pointer
colors. But I'll accept your premise for now.)

Given that you are concerned about making things invisible, the current
x_set_mouse_color *guarantees* that the border around the pointer
becomes invisible. A much more sensible default for this would be to use
the frame foreground color. Or pretty much *anything* else than the
frame background.

I hope we can agree that in my example image, the pointer which has not
been modified by emacs is much preferrable, and the one which has been
modified is verging on unusable. In a multi-monitor configuration with
many windows open, I find myself losing track of the mouse pointer and
having difficulty finding it again.

On a side note, even a black (unmodified) pointer is still highly
visible against a black frame background, as long as the contrasting
border around it is still present.