On Thursday 20 June 2002 5:49 pm, John Levon wrote: > On Thu, Jun 20, 2002 at 05:26:16PM +0100, Angus Leeming wrote: > > So that means that the code in XScreen that calls > > XCopyArea (display, cursor_pixmap, owner_.getWin(), ... > > direct is incorrect (which is your comment about the cursor being > > broken)? > > > > Instead it should call > > XCopyArea (display, cursor_pixmap, owner_.getPixmap(), ... > > expose(...) > > > > Am I on the right track? > > Yep - of course you need to make sure that area is then exposed. But > given the current xforms stuff (modulo your patch) that would cause the > entire workarea to be redrawn (whooo).
because of the loop in objects.c's mark_for_redraw / fl_redraw_form: for (ob = form->first; ob; ob = ob->next) ob->redraw = 1; that is called by fl_handle_forms and flags all objects on the form for redraw? (As opposed to the code in xscreen's XScreen::draw that just redraws a little bit of the pixmap.) Doesn't the XEvent give us a bounding box. Things within the box should be drawn, things outside it need not be. Couldn't that info be used to flag which objects should be redrawn. Or am I dreaming here. > I suspect I am going to have to abandon this and just go back to doing > the wrong thing in xforms. Most of the rest of the patch can stay as is, > of course. > > And this time I'll add a *comment* saying WHY it's done like that (Grrr) For the reasons I've outlined? > regards > john Angus (who's not contributing anything but might be learning a little)