Subject: bug#52666: 27.0.50; Unexpected mode line flickering when creating frames

From: martin rudalics <[email-masked]>
Date: Mon, 20 Dec 2021 18:21:50 +0100

> I think the child frame is first placed in some location determined by
 > the WM, and then moved to the place the code says.  Martin, is that
 > so?

Not really - the frame should be placed correctly from the outset.  The
code has two problems: Using 'set-frame-width' and 'set-frame-height'
immediately after the frame has been created is bad karma and should be
avoided at all costs.  The right approach is

(while t
   (let ((f (make-frame `((parent-frame . ,(selected-frame))
                          (left . 200)
                          (top . 200)
			 (width . 200)
			 (height . 200)))))
     (sit-for 0.3)
     (delete-frame f)))

 > If I'm right, then the flickering of the parent frame is when the
 > child frame intersects some of its elements.

This is the second problem: 200 x 200 is way too large for the parent
frame so the WM has to clip the child frame and where it overlaps with
the parent frame it probably induces some sort of expose event that
eventually causes the flicker.

martin