From 7ff7f948f7802941b98294ae8a52a9a178dcaa9d Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sat, 15 Jan 2022 21:11:57 +0800 Subject: [PATCH] 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) --- src/nsterm.m | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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); } -- 2.39.5