On Tue, May 09, 2006 at 11:25:41PM +0200, Viktor Griph wrote:
> On Fri, 5 May 2006, Dominik Vogt wrote:
> 
> >On Thu, May 04, 2006 at 08:54:25PM +0200, Viktor Griph wrote:
> >>When are the hide windows useful in frame.c? The call to
> >>frame_reparent_hide_windows in frame_create_move_resize_args casue X to
> >>generate extra VisibilityNotify events to clients during capture and
> >>redecoration (bug #3977).
> >
> >The hide windows are emtpy windows (with a "None" background
> >pixmap).  I introduced them to reduce flickering of the window
> >decorations when a window is resized, and - more important -
> >shaded or unshaded.
> >
> >The problem is that when you resize a window, you can tell X which
> >border its subwindows should stick to.  But you can not tell it
> >where the subwindows of subwindows should go, and it's not
> >possible to resize subwindows in the same operation.
> >
> >Because of this, I use the hide windows to cover some parts of the
> >decorations, resize the window, redraw the the changed parts of
> >the decorations windows (using a background pixmap, not using the
> >foreground), then unmap the hide windows to uncover the changed
> >decorations.  Usually, the hide windows stay "invisible" because
> >htey have no contents and just show what was below them until they
> >are covered by something else.
> >
> 
> Now I understand the need for them for resize operations.
> 
> >>Would it be possible to narrow down the need for
> >>that function call to some specific case?
> >
> >I don't see any way but at the expense of flickering decorations
> >and subwindows, especially with opaque resizing.
> 
> Am I right if I say that the hide windows do no good if it is a setup 
> request and the frame size has not changed? I'm not sure how the initial 
> mapping is treated, but I believe they do no good for that either. It's 
> just a little harder to seed that condition from withing the function.

I'm not entirely sure about this, but as far as I remember the
hide windows are resized to cover only the relevant parts of the
window.  I.e. if the window size does not change, the hide windows
do not cover anything (I'm not sure if the hide windows are used
at all in that case).  There may be some room for optimizing here.

> >Actually, if applications like xdvi have a below par redraw
> >algorithm (i.e. they redraw whenexer they receive an Expose
> >event), that's the applications' problem and not the problem of
> >the window manager.
> 
> It's true that the application may be behaving badly, but there are 
> several application that show similar flickering due to the exrtra events 
> on a redecoration. if it's possible to work around the events with the 
> window mannager it's a good thing to do, but not at the expense of some 
> other functionality. Just for reference the thing that annoys me most 
> about this is the fact that my titleless pager and xbuffy flash whenever 
> I redecorate (including even disable an already disabled title bar button)

Ciao

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]

Attachment: signature.asc
Description: Digital signature

Reply via email to