aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-01-15 21:11:57 +0800
committerPo Lu2022-01-21 09:00:59 +0800
commit7ff7f948f7802941b98294ae8a52a9a178dcaa9d (patch)
tree792483c21ad6bf20f3aab29eef866b6a5282d636 /src
parent10083e788f7349fa363d100687dc3d94bea88f57 (diff)
downloademacs-7ff7f948f7802941b98294ae8a52a9a178dcaa9d.tar.gz
emacs-7ff7f948f7802941b98294ae8a52a9a178dcaa9d.zip
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)
Diffstat (limited to 'src')
-rw-r--r--src/nsterm.m11
1 files 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)
7071{ 7071{
7072 struct ns_display_info *dpyinfo = FRAME_DISPLAY_INFO (emacsframe); 7072 struct ns_display_info *dpyinfo = FRAME_DISPLAY_INFO (emacsframe);
7073 struct frame *old_focus = dpyinfo->ns_focus_frame; 7073 struct frame *old_focus = dpyinfo->ns_focus_frame;
7074 struct input_event event;
7075
7076 EVENT_INIT (event);
7074 7077
7075 NSTRACE ("[EmacsView windowDidBecomeKey]"); 7078 NSTRACE ("[EmacsView windowDidBecomeKey]");
7076 7079
@@ -7079,11 +7082,9 @@ not_in_argv (NSString *arg)
7079 7082
7080 ns_frame_rehighlight (emacsframe); 7083 ns_frame_rehighlight (emacsframe);
7081 7084
7082 if (emacs_event) 7085 event.kind = FOCUS_IN_EVENT;
7083 { 7086 XSETFRAME (event.frame_or_window, emacsframe);
7084 emacs_event->kind = FOCUS_IN_EVENT; 7087 kbd_buffer_store_event (&event);
7085 EV_TRAILER ((id)nil);
7086 }
7087} 7088}
7088 7089
7089 7090