Wily multiple expose / redraw events

Ian Broster <[email protected]> Wed, 03 Mar 2004 15:07:42 -0000
Newsgroups gmane.editors.wily
Message-ID <[email protected]>
Ages ago, I mentioned that wily redraws itself over and over
again when resizing, taking up to 10 seconds to complete.
Finally, I had look and here is a fix for the version of libXg
that I have.

I've not sent it as a patch because I am (and wily in general is?)
in a bit of a multiple version muddle.

Replace Redraw() in libXg/gwin.c:141 with the following.
It basically checks that there are no more expose
events in the queue before committing to redrawing.
Seems to work for me, but I'm no X programmer.

Ian


static void
Redraw(Widget w, XEvent *e, Region r)
{
	Reshapefunc f;

	if (e && e->xexpose.count == 0)
	{
		f = ((GwinWidget)w)->gwin.reshaped;
		if(f)
		{
			(*f)(w->core.x, w->core.y,
				w->core.x+w->core.width, w->core.y+w->core.height);
		}
	}
}