<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<blockquote type="cite">
<pre>><i> BTW I noticed afterwards that this doesn't help all apps. Evince, for
</i>><i> example, still blinks whenever I bring up the popup menu while in
</i>><i> fullscreen mode, whereas Firefox doesn't blink. I did some quick
</i>><i> protocol tracing and I saw some window background mode changes from
</i>><i> the client. A quick look at gdk-x11 code revealed that it does some
</i>><i> tricks with the window background. I never got around to testing if
</i>><i> removing that code would make Evince blink-free (tm).
</i>
Interesting... there are certainly tricks being played there, but it's
hard to see why they would cause blinking.
When GTK+ maps an override-redirect window, it temporarily sets the
background of the override-redirect window to None. When it unmaps a
window, in some cases, it will temporarily unset the background of a
window that it thinks it might be underneath.
</pre>
</blockquote>
<br>
Sometime in the previous decade I sent patches to Mozilla to always
set window background <br>
to None (mozilla bug 28003). Hopefully none of it got lost since
then.<br>
<br>
It makes sense as not only it prevents blinking, it was also visibly
faster at the time<br>
(probably still is). And opaque move/resize is much better.<br>
<br>
IMO, this mechanism should be used by all X apps, because the only
downside <br>
is that background is not painted when app is blocking. The GTK+
mechanism <br>
of switching backgrounds seems of little use to me (?).<br>
<br>
Regards,<br>
Mark<br>
<br>
offtopic: perhaps the Xserver (or WM/compositor) should paint the
window gray if the app isn't responding <br>
to events?<br>
<br>
<br>
</body>
</html>