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

From: martin rudalics <[email-masked]>
Date: Tue, 21 Dec 2021 11:32:53 +0100

> Do you still observe the mode line flickering you mentioned in the Gtk
 > build also with this version?

I later found out that with my GTK-3 build the child frame never became
visible with your original recipe when I moved the mouse into the area
reserved for it.  Maybe this is related to my focus follows mouse
settings maybe it's something else.

I can explain the mode line flickering as follows: This

       (let ((f (make-frame `((parent-frame . ,(selected-frame))
                              (left . 200)
                              (top . 200)))))

creates a child frame at a 200 . 200 pixels offset from the top-left
corner of the parent's native frame.  Since the size of the child frame
is by default that of its parent, the child frame will thus draw over
the entire area of the parent frame (including mode line and scroll
bars) to the right of and below that position.  Next you do

         (set-frame-width f 200 nil t)

which will expose the part of the parent frame to the right of a ~400
pixels X-position and then you do

         (set-frame-height f 200 nil t)

which will expose the part of the parent frame below a ~400 pixels
Y-position.  With all possible delays involved when setting width and
height ('x-wait-for-event-timeout' might come into play here too) such
flickering should not come as a surprise here.

martin