(started a new thread so that I don't have to quote tons of old
mails ;-)

Here is a simple solution to all problems with flickering that
does not even require all these additional windows: Draw behind
the scenes.

 - Create a sub window of the frame that has background_pixmap set
   to None.
 - Stack it above all the decorative windows, but below the title
   bar windows and the parent.
 - Before an animation step, resize it to a size that covers both,
   the old and new size of the frame window.
 - Map it.  Because of the "None" background pixmap, it just gets
   the contents of the windows that it covered.
 - Draw the new border and title windows behind that 'invisible'
   window (as background pixmaps).
 - Give the 'invisible' window UnmapGravity and set the proper
   gravities of the decoration windows.
 - Resize the frame.  Said window is automagically unmapped and
   uncovers the windows below it.
 - The X server automatically draws the now exposed parts with the
   background pixmaps of these windows.

The only unwanted side effect is that the X server draws the
complete border in each step, although it does that without any
additional client/server communication.  Probably not much of a
problem because it already does that right now for half of the
border.  All this is invisible because it just repaints the same
pixels that are already there.

Bye

Dominik ^_^  ^_^

 --
Dominik Vogt, [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
--
Visit the official FVWM web page at <URL:http://www.fvwm.org/>.
To unsubscribe from the list, send "unsubscribe fvwm-workers" in the
body of a message to [EMAIL PROTECTED]
To report problems, send mail to [EMAIL PROTECTED]

Reply via email to