On Tue, Mar 19, 2002 at 11:30:53AM -0500, Dan Espen wrote: > FVWM CVS <fvwm-workers@fvwm.org> writes: > > CVSROOT: /home/cvs/fvwm > > Module name: fvwm > > Changes by: domivogt 02/03/19 10:17:36 > > > > Modified files: > > . : ChangeLog > > fvwm : frame.c > > > > Log message: > > * Removed flash when maximizing rxvt windows. > > I still see it. > I use the keyboard to maximize. > My rxvt windows have a background pixmap.
On the way to my dancing training I came up with the idea why it flashes and a way to get rid of it once and for all. THe problem: With window gravities, you can tell X to automatically move child windows, but you can not tell it to resize them. Since the client window is a sub sub window of the frame, you can not resize or move it to its final position in the same operation as the parent and the frame. At the moment, when a window is maximized, the client is resized first (this generates a ConfigureNotify which may cause the client to redraw). Then the parent is resized, then the frame. Since fvwm and the client send their commands asynchronously to the server, the parent's or frame's background may become visible for a split second before the client gets Expose events and covers it. Because of the three tiers in the window hierarchy, it's impossible to prevent this effect completely. What happens is that some areas of the frame may get redrawn multiple times. This is not only visually disturbing but also slow. Here is the good news: it *is* possible to suppress all the superflous redraws. Set the background pixmap of the parent and the frame to 'None', resize them before resizing the client and then resize the client. Because of the undefined background, the X server simply keeps the contents of the now exposed areas. Let's try... 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]