>>>>> "Martin" == Martin Vermeer <[EMAIL PROTECTED]> writes:

>> Also, I do not like much the fact that these signatures are stored
>> in Paragraph. Why can't they go in rows themselves?

Martin> Tried that... unfortunately every time redoParagraph clears
Martin> all row data.

First I missed earlier the fact that rows are already part of
Paragraphs (yuck!). So your new code is not worse.

Then, what could be done is have redoParagraph keep the old list (in a
oldrows struct) and for each new row created set a 'clean' flag if it
is identical to the old one (meaning there is no need to redraw). It
will not work exactly like that (because there may be several
redoParagraph calls between screen redraws), but the idea should work
and avoid the signature. the clean flag should probably be a ticker of
some sort to be able to say: "this is the same row as was painted by
screen draw number 1456".

>> I am not sure I understand your argument about insets containing
>> text.

Martin> The point is that an inset in a paragraph will be painted only
Martin> if it is encountered as part of the painting operation for
Martin> that paragraph. This means that if you want to selectively
Martin> paint only some row, you must make sure that _at least those
Martin> rows_ that contain insets with internal paragraphs are painted
Martin> anyway.

Martin> This matters only when the cursor is inside such an inset. 

So why don't you test on that condition? I am sure there is some
cursor/iterator helper that can tell you whether cursor is in some
inset.

>> 20 seconds down to 8-9 seconds

Martin> Great news! I think this is the way to go then.

Indeed :)

I won't have time to try it out before Monday, unfortunately.

JMarc

Reply via email to