diff options
author | Po Lu <luangruo@yahoo.com> | 2022-05-22 05:03:12 +0000 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-05-22 05:03:12 +0000 |
commit | 67685de75c2223443db892695cbc0af283839db6 (patch) | |
tree | 3cfc246a9be86ccd85b376277a9c034d2d53adcc /src/haikuterm.c | |
parent | 714970f5967f2153bb95e35823dbd917e0e5b60b (diff) | |
download | emacs-67685de75c2223443db892695cbc0af283839db6.tar.gz emacs-67685de75c2223443db892695cbc0af283839db6.tar.bz2 emacs-67685de75c2223443db892695cbc0af283839db6.zip |
Fix focus redirection to/from surrogate minibuffer frames on Haiku
* src/haikuterm.c (haiku_get_focus_frame): New function.
(haiku_create_terminal): Register new hook.
Diffstat (limited to 'src/haikuterm.c')
-rw-r--r-- | src/haikuterm.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/haikuterm.c b/src/haikuterm.c index 6401ea12330..47cffded48d 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -3960,6 +3960,21 @@ haiku_read_socket (struct terminal *terminal, struct input_event *hold_quit) return message_count; } +static Lisp_Object +haiku_get_focus_frame (struct frame *f) +{ + Lisp_Object lisp_focus; + struct frame *focus; + + focus = FRAME_DISPLAY_INFO (f)->focused_frame; + + if (!focus) + return Qnil; + + XSETFRAME (lisp_focus, focus); + return lisp_focus; +} + static void haiku_frame_rehighlight (struct frame *frame) { @@ -4185,6 +4200,7 @@ haiku_create_terminal (struct haiku_display_info *dpyinfo) terminal->fullscreen_hook = haiku_fullscreen; terminal->toolkit_position_hook = haiku_toolkit_position; terminal->activate_menubar_hook = haiku_activate_menubar; + terminal->get_focus_frame = haiku_get_focus_frame; return terminal; } |