From: Po Lu Date: Sat, 15 Jan 2022 13:11:57 +0000 (+0800) Subject: Avoid FOCUS_IN_EVENTS not being sent on NS X-Git-Tag: emacs-29.0.90~2888 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7ff7f948f7802941b98294ae8a52a9a178dcaa9d;p=emacs.git Avoid FOCUS_IN_EVENTS not being sent on NS * src/nsterm.m ([EmacsView windowDidBecomeKey]): Work around emacs_event being NULL by storing focus in events directly into the keyboard buffer. (bug#52376) --- diff --git a/src/nsterm.m b/src/nsterm.m index 4f60cc737da..a3c7b55218c 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -7071,6 +7071,9 @@ not_in_argv (NSString *arg) { struct ns_display_info *dpyinfo = FRAME_DISPLAY_INFO (emacsframe); struct frame *old_focus = dpyinfo->ns_focus_frame; + struct input_event event; + + EVENT_INIT (event); NSTRACE ("[EmacsView windowDidBecomeKey]"); @@ -7079,11 +7082,9 @@ not_in_argv (NSString *arg) ns_frame_rehighlight (emacsframe); - if (emacs_event) - { - emacs_event->kind = FOCUS_IN_EVENT; - EV_TRAILER ((id)nil); - } + event.kind = FOCUS_IN_EVENT; + XSETFRAME (event.frame_or_window, emacsframe); + kbd_buffer_store_event (&event); }