From: Po Lu Date: Mon, 11 Apr 2022 07:45:37 +0000 (+0000) Subject: Always cascade from toplevel frames on Haiku X-Git-Tag: emacs-29.0.90~1931^2~666 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7140b1e82d7d20c59ee8e0d7a47f6608cb60cb0c;p=emacs.git 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. --- diff --git a/src/haikufns.c b/src/haikufns.c index 767f555317c..ef95d42f0f1 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);