summaryrefslogtreecommitdiff
path: root/src/haikuterm.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-05-22 05:03:12 +0000
committerPo Lu <luangruo@yahoo.com>2022-05-22 05:03:12 +0000
commit67685de75c2223443db892695cbc0af283839db6 (patch)
tree3cfc246a9be86ccd85b376277a9c034d2d53adcc /src/haikuterm.c
parent714970f5967f2153bb95e35823dbd917e0e5b60b (diff)
downloademacs-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.c16
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;
}