]> git.eshelyaron.com Git - emacs.git/commitdiff
Find a way to make lowering frames work on Haiku
authorPo Lu <luangruo@yahoo.com>
Sat, 15 Jan 2022 05:30:28 +0000 (05:30 +0000)
committerPo Lu <luangruo@yahoo.com>
Sat, 15 Jan 2022 05:30:28 +0000 (05:30 +0000)
* 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.

doc/lispref/frames.texi
src/haikuterm.c

index ca7d9ada0ba589d8c85778dc1e77af54adec1f67..2eeb8b7ed74047eda502b465b7dc749409af3e8c 100644 (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
index 3e99cc1c8d9b6f4bd36b169705a9e1f6349da613..ad89985b748ab732fbf7919924177a96856904cc 100644 (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.  */