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