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

From: Markus Triska <[email-masked]>
Date: Sun, 19 Dec 2021 21:42:21 +0100

Dear all,

to reproduce this issue, please put the following form in a new file
flicker.el:

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

and then invoke Emacs with:

    $ emacs -Q -l flicker.el

The form repeatedly creates and destroys a child frame, offset 200
pixels both horizontally and vertically from the top left corner of the
frame.

Unexpectedly, the mode line flickers in many (though apparently not all)
iterations, starting at 200 pixels horizontally from the left, even
though the frame does not overlap the mode line in any way.

Ideally, the creation of the frame should not have any visible effect on
the mode line.

Could the pleasant double buffering feature I have read about help to
remove this flickering when creating child frames? Please let me know if
you can reproduce the issue or need any further information. I can
reproduce the flickering both on OSX and on Debian.

Thank you a lot!
Markus

In GNU Emacs 27.0.50 (build 1, x86_64-apple-darwin18.0.0, X toolkit, Xaw scroll bars)
 of 2018-11-15 built on mts-mac
Repository revision: b4eb908f858284a7962851fd99c94598f76afa6f
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description:  Mac OS X 10.14.2

Configured using:
 'configure --prefix=/opt/local --without-ns --without-dbus
 --without-gconf --without-libotf --without-m17n-flt --without-gpm
 --with-gnutls --with-xml2 --with-modules --infodir
 /opt/local/share/info/emacs --with-json --with-x-toolkit=lucid
 --without-xaw3d --without-imagemagick --with-xpm --with-jpeg
 --with-tiff --with-gif --with-png --with-lcms2 --without-rsvg
 --with-xft 'CFLAGS=-pipe -Os
 ...

Configured features:
XPM JPEG TIFF GIF PNG NOTIFY KQUEUE ACL GNUTLS LIBXML2 FREETYPE XFT ZLIB
TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS JSON LCMS2 GMP