On Wed, Nov 01, 2006 at 11:36:08PM +0100, Asger Ottar Alstrup wrote:
> Hi,
> 
> To implement partial update (single paragraph update), it is not enough 
> just to redraw only those parts of the screen.
> 
> You also have to implement partial update of the coord cache. Right now, 
> the only possible operation for the coord cache is to clear all of it.
> 
> To implement partial update, it is necessary to change it such that you 
> selectively remove only those parts of the coord cache which reside in 
> the paragraph you want to redraw.
> 
> The reason is that if you have a paragraph with an inset in it, the 
> coordinates of the inset is recorded in the coord cache. If you type 
> something in this paragraph (without changing the height of the 
> paragraph), the inset might move, and thus you need to update the 
> coordinates of insets in the same paragraph in the coord cache.
> 
> (I assume that you understand that the coord cache contains several 
> caches: One for paragraphs, one for insets, and a third one I forget. 
> You have to make sure that all caches are correctly updated of course - 
> it's not just the insets cache. Remember that the coord cache is 
> calculated in two steps: First, sizes are calculated. Then, *when 
> drawing* the positions are recorded.)
> 
> Regards,
> Asger

Hmmm, I don't think this is done in 1.4, and still single par update
works just fine there... in 1.5 the infrastructure is there but it isn't
working properly, as whole-screen updates have been layered on top of it
with reckless disregard for what was already there, which thus is now
completely useless.

I am a bit angry about this. It would have been so easy to see what
exactly is getting rendered using the PAINTING debug flag.

What about first getting the old singlepar/singlerow functionality back
into a working state? Then we can see what is missing and provide it.

- Martin

Attachment: pgpFNih8CRs57.pgp
Description: PGP signature

Reply via email to