emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 7140b1e82d: Always cascade from toplevel frames on Haiku


From: Po Lu
Subject: master 7140b1e82d: Always cascade from toplevel frames on Haiku
Date: Mon, 11 Apr 2022 03:47:17 -0400 (EDT)

branch: master
commit 7140b1e82d7d20c59ee8e0d7a47f6608cb60cb0c
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Always cascade from toplevel frames on Haiku
    
    * src/haikufns.c (haiku_create_frame): Cascade from toplevel
    frames, since otherwise the positions are wrong anyway, and it
    doesn't make sense to cascade from a frame that disappears when
    it becomes deactivated.
---
 src/haikufns.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/haikufns.c b/src/haikufns.c
index 767f555317..ef95d42f0f 100644
--- a/src/haikufns.c
+++ b/src/haikufns.c
@@ -582,6 +582,11 @@ haiku_create_frame (Lisp_Object parms)
   else
     cascade_target = NULL;
 
+  /* Always cascade from the most toplevel frame.  */
+
+  while (cascade_target && FRAME_PARENT_FRAME (cascade_target))
+    cascade_target = FRAME_PARENT_FRAME (cascade_target);
+
   parms = Fcopy_alist (parms);
 
   Vx_resource_name = Vinvocation_name;
@@ -624,6 +629,7 @@ haiku_create_frame (Lisp_Object parms)
       f = make_frame_without_minibuffer (tem, kb, display);
   else
       f = make_frame (1);
+
   XSETFRAME (frame, f);
 
   f->terminal = dpyinfo->terminal;
@@ -810,6 +816,11 @@ haiku_create_frame (Lisp_Object parms)
       || !FRAME_LIVE_P (XFRAME (parent_frame)))
     parent_frame = Qnil;
 
+  /* It doesn't make sense to center child frames, the resulting
+     position makes no sense.  */
+  if (!NILP (parent_frame))
+    window_prompting |= PPosition;
+
   fset_parent_frame (f, parent_frame);
   store_frame_param (f, Qparent_frame, parent_frame);
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]