Re: Freezing updates for compositing managers

Denis Dzyubenko <[email protected]> Mon, 29 Jun 2009 10:10:43 +0200
Newsgroups gmane.comp.gnome.wm-spec
Message-ID <[email protected]>
Hi Owen,

Owen Taylor wrote:
> Fixing this really requires application intervention - when the
> compositor receives the MapNotify for the window the window might
> have drawn yet, or might not, and there's no way that the
> compositor can know.
> 
> This is actually a symptom of a more general situation - an
> application wants to make multiple X requests (here a map and
> then the redraw) and not have the compositor draw until it is done.
> 
> Thinking of it that way - that gives a pretty straightforward
> solution - the app can set a property that says "don't update me" -
> say _NET_WM_FREEZE_UPDATES - and then remove it when it is ready
> to be painted again.

Sounds like an excellent idea, however it also sounds similar to 
something that the wm-spec already have - can we use the existing 
_NET_WM_SYNC_REQUEST protocol for that? Since compositing manager might 
already support it, it could be pretty straightforward to implement the 
same protocol for the case when a client window is initially mapped. For 
example, when the compositor receives the MapNotify, it might send the 
_NET_WM_SYNC_REQUEST client message and delay showing the window until 
the client responds by setting a _NET_WM_SYNC_REQUEST_COUNTER.

-- 
Denis Dzyubenko
Software Engineer
Nokia, Qt Software