[EMAIL PROTECTED] wrote:
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.

And BackingStore: NotUseful to save server memory

 - 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).

Is the title window above or below the magic window?

 - 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.


Sounds great, I never knew about UnmapGravity.

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.

It shouldn't be a problem at all, it should be just tiling from the backing pixmap so it should be done by the graphics hardware.

Cheers,
Tim.


--
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