[PATCH xserver] composite: Inhibit window background paint with manual subwindow redirection

Marko Macek Marko.Macek at gmx.net
Mon Jul 25 11:36:42 PDT 2011


> >/  BTW I noticed afterwards that this doesn't help all apps. Evince, for
> />/  example, still blinks whenever I bring up the popup menu while in
> />/  fullscreen mode, whereas Firefox doesn't blink. I did some quick
> />/  protocol tracing and I saw some window background mode changes from
> />/  the client. A quick look at gdk-x11 code revealed that it does some
> />/  tricks with the window background. I never got around to testing if
> />/  removing that code would make Evince blink-free (tm).
> /
> 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.

Sometime in the previous decade I sent patches to Mozilla to always set window background
to None (mozilla bug 28003). Hopefully none of it got lost since then.

It makes sense as not only it prevents blinking, it was also visibly faster at the time
(probably still is). And opaque move/resize is much better.

IMO, this mechanism should be used by all X apps, because the only downside
is that background is not painted when app is blocking. The GTK+ mechanism
of switching backgrounds seems of little use to me (?).

Regards,
     Mark

offtopic: perhaps the Xserver (or WM/compositor) should paint the window gray if the app isn't responding
to events?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20110725/38477ae4/attachment.htm>


More information about the xorg-devel mailing list