Subject: bug#53276: The blink-cursor-mode not work after startup on macOS

From: Po Lu <[email-masked]>
Date: Sat, 15 Jan 2022 15:04:35 +0800

Eason Huang <[email-masked]> writes:

> When Emacs is started at the first time, the blink-cursor-mode does
> not work, and the focus needs to be switched to another
> application, and then switching back again, it will work properly.

blink-cursor-mode will only start the idle timer that actually blinks
the cursor if at least one frame is focused, but no FOCUS_IN_EVENT is
sent until windowDidBecomeKey is called a second time, as emacs_event is
NULL when windowDidBecomeKey is first called.  This is both on GNUstep
and macOS.  (Perhaps storing the FOCUS_IN_EVENT into the keyboard buffer
would be an option.)

Alan, do you have any idea as to why this is?  I'm afraid I don't really
understand the NS event loop code.

Thanks in advance.