Subject: bug#71866: 30.0.50; [macOS] Cursor hiding char behind it with certain theme customization

From: Dmitry Gutov <[email-masked]>
Date: Mon, 1 Jul 2024 06:14:28 +0300

Repro script is attached. Disabling blink-cursor-mode is not a
hard requirement, but it makes the bug easier to see. The font and face
customizations are both necessary.

1. emacs -Q -l nocursor-repro.el
2. Type 'asdasd' (without quotes)
3. Move point to either of the 's' chars
4. Create a new frame with 'C-x 5 2'

The character under cursor won't be visible - just a blank cell (the
cursor is blank as well). Then I move point with e.g. C-f and it's
visible again.

Switching between the frames (C-x 5 o) will make the char again 
invisible, as long as the point is on an 's' (in this specific scenario, 
that is). And only in the second frame (or others created later) but not 
the first one.

This only happens on my macOS machine.

The face customization is a part of a 3rd party theme (tango-plus).  I'm
pretty sure the :inverse-video customization should be a no-op but it
isn't. Seems like a subtle bug somewhere. As a user of the theme it's
taken me a while to narrow down the problem, so it'd be great if someone
could look into it.

In GNU Emacs 30.0.50 (build 3, aarch64-apple-darwin23.3.0, NS
appkit-2487.40 Version 14.3 (Build 23D56)) of 2024-06-04 built on
dizzy.local
Repository revision: 43c354a0004145c04bbc6adf0cfaa8c21403ad8c
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2487
System Description:  macOS 14.3