Find a way to make lowering frames work on Haiku

* doc/lispref/frames.texi (Raising and Lowering): Document that
lowering frames is now supported on Haiku.
* src/haikuterm.c (haiku_frame_raise_lower): Implement a hack to
lower frames.
This commit is contained in:
Po Lu 2022-01-15 05:30:28 +00:00
parent 9d809ed9bb
commit 43618cd44c
2 changed files with 9 additions and 4 deletions

View file

@ -3154,10 +3154,8 @@ raises @var{frame} above all other child frames of its parent.
@deffn Command lower-frame &optional frame
This function lowers frame @var{frame} (default, the selected frame)
below all other frames belonging to the same or a higher z-group as
@var{frame}.@footnote{Lowering frames is not supported on Haiku, due
to limitations imposed by the system.} If @var{frame} is a child
frame (@pxref{Child Frames}), this lowers @var{frame} below all other
child frames of its parent.
@var{frame}. If @var{frame} is a child frame (@pxref{Child Frames}),
this lowers @var{frame} below all other child frames of its parent.
@end deffn
@defun frame-restack frame1 frame2 &optional above

View file

@ -370,6 +370,13 @@ haiku_frame_raise_lower (struct frame *f, bool raise_p)
BWindow_sync (FRAME_HAIKU_WINDOW (f));
unblock_input ();
}
else
{
block_input ();
BWindow_send_behind (FRAME_HAIKU_WINDOW (f), NULL);
BWindow_sync (FRAME_HAIKU_WINDOW (f));
unblock_input ();
}
}
/* Unfortunately, NOACTIVATE is not implementable on Haiku. */