Wily multiple expose / redraw events

  • From: Ian Broster <ianb@xxxxxxxxxxxxx>
  • To: wilyfans@xxxxxxxxxxxxx
  • Date: Wed, 03 Mar 2004 15:07:42 -0000

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);
                }
        }
}


Other related posts: