On Friday 21 June 2002 11:55 am, John Levon wrote:
> On Fri, Jun 21, 2002 at 10:04:32AM +0100, Angus Leeming wrote:
> > So, the next step is to make the screen modify the work area pixmap (hide
> > the work area window) and emit an expose call.
>
> That's what the patch I sent does (should do)

Maybe ;-) But I'm confused by XScreen::draw:

                        XCopyArea (fl_get_display(),
                                   owner_.getWin(), // owner_.getPixmap(),
                                   owner_.getWin(), // owner_.getPixmap(),
                                   ...);
        
                        // expose the area drawn
                        expose(0, 0,
                               owner_.workWidth(),
                               old_first - text->first_y);

Why are you changing owner_.getWin() direct, not owner_.getPixmap() and then 
expose()ing the change?

> > Now does the associated XEvent *
> > xev have info about which bit of the widow is to be redrawn or do we just
> > copy the entire pixmap into the window.
>
> The latter, it seems, and this is what I am calling sucky. This pixmap
> can get *big*.

So, ideally, XWorkArea::paint should change only a small area of the window 
and this info will come from xev. Looking more deeply, I see that this is 
what it's coded up to do, as is XScreen::expose.

That means that all we have to do is pass the correct coordinate info to 
expose(). But we seem to do that too.

So, it looks to me that your patch + my xforms patch will allow us to redraw 
only a part of the window, with the XScreen::draw proviso above.

> I've only briefly looked at the xforms double buffer stuff so I can't
> really comment on how well it works ... in the end I'm not sure it's
> worth the bother. the GUII code is now flexible enough to allow Qt to do
> the right thing, and that matters most

Let's ignore that for now. This is something that should be hidden inside 
WorkArea. First we should finish the interaction between the Screen and the 
WorkArea.

It looks to me like you're almost there. Don't stop now!

Angus

Reply via email to