On Tue, Mar 18, 2003 at 09:23:54AM +0100, Juergen Vigna wrote:

> >    400         bv->update(text, BufferView::SELECT | BufferView::FITCUR);
> >    401         text->toggleFree(font, toggleall);
> >    402         bv->update(text, BufferView::SELECT | BufferView::FITCUR | 
> >    BufferView::CHANGE);
> >
> >Is this related to CHANGED_IN_DRAW ? (and if so, how ...)
> 
> This code is related to "selections" and their redraw/drawing, it doesn't
> do that much actually have a better look at the update function and you'll
> see that actually most of this calls don't do that much.

Why are we removing a selection, drawing that, exposing it, making the
change, drawing that and exposing it ? Given that the user has no input
inbetween any of this sequence.

> I explain you also why one update won't work because then we would have
> to do "full redraw" as Andre tell's us always.

I don't understand why. Can you explain further ? Either way, we only
need to update from the refresh_y of where things changed (which will
sometimes need to be a full draw, of course).

> I didn't finish my explanation above ;), if we don't do a "full redraw"
> we have to "clear the selection first" then do the change, and after that
> "redraw the selection" as otherwise we would have drawing glitches and blue
> selection rectangles in spots where they should not be.

This just sounds like bugs to me, and several redraws (did you know each
character press sends redraws twice even in a normal par ?) is not the
correct solution. Do you mean cursor droppings ?

regards
john

Reply via email to