unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: Po Lu <luangruo@yahoo.com>
Cc: Eason Huang <aqua0210@foxmail.com>, 53276@debbugs.gnu.org
Subject: bug#53276: The blink-cursor-mode not work after startup on macOS
Date: Sat, 15 Jan 2022 12:34:10 +0000	[thread overview]
Message-ID: <YeK/QnqQl4n3yCZ3@idiocy.org> (raw)
In-Reply-To: <871r19eayk.fsf@yahoo.com>

On Sat, Jan 15, 2022 at 03:04:35PM +0800, Po Lu wrote:
> Eason Huang <aqua0210@foxmail.com> 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.

No, I don't know why it's done this way. There are a number of other
bugs that have the same root cause, where emacs_event is null because
the code is being called outside the run loop and therefore the event
never reaches Emacs.

My assumption is that there is a reason why it's done this way, but I
can't work it out.

I had a look at some of the other terms and they *kind of* work in a
similar fashion, in that there's one function that scoops up all the
events and passes them to Emacs (like ns_read_socket does) but they
differ in that the events are queued up by the system before they're
read in. So given that I wonder if the NS port is just copying that
style from other terms, but it doesn't actually work right.

(I sometimes think it would be nice if we had git history for the NS
port from before it was merged in, because a lot of these design
decisions are ancient and it's unclear why they were made.)
-- 
Alan Third





  reply	other threads:[~2022-01-15 12:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-15  4:41 bug#53276: The blink-cursor-mode not work after startup on macOS Eason Huang
2022-01-15  7:04 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-15 12:34   ` Alan Third [this message]
2022-01-15 13:05     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-15 13:11       ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-21  1:19         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-21 11:38           ` Eason Huang
2022-01-21 11:41             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-01-27 15:06             ` Robert Pluim
2022-01-27 16:43               ` Eli Zaretskii
2022-01-27 17:02                 ` Robert Pluim
2022-01-27 17:07                   ` Eli Zaretskii
2022-01-27 17:15                     ` Robert Pluim
2022-01-28  0:38               ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YeK/QnqQl4n3yCZ3@idiocy.org \
    --to=alan@idiocy.org \
    --cc=53276@debbugs.gnu.org \
    --cc=aqua0210@foxmail.com \
    --cc=luangruo@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).