On Thu, 2005-12-15 at 10:35 +0100, Jean-Marc Lasgouttes wrote: > >>>>> "Martin" == Martin Vermeer <[EMAIL PROTECTED]> writes: > > Martin> I still want to give that a try later, for 1.4.1 perhaps... > Martin> there must be a straightforward way of doing it, mostly > Martin> confined to rowpainter. And with special attention to the text > Martin> inside insets, as people will want to use big branchinsets. > > One idea I had is to do some checksumming of the row content while > breaking paragraphs which allows to know whether a row has been > modified and needs a redraw. Then the rowpainter could more safely > decide not to redraw some parts. I do not know how difficult this > would be, though.
That was more or less what the patch did. It computed a 'signature' of the row, the expression rit->endpos() - rit->pos() + y showing if a row has been changed in a way that necessitates repainting. This is not a very good signature though, as you can easily see. Checksum would be better. > Admitedly this would reduce the number of repaints, not of rebreaks, > but it may be less fragile than tests all over the place to guess what > should be updated. > > Martin> Currently, with my lyxfunc patch, only the current paragraph > Martin> is redrawn for every character insertion. The whole screen > Martin> only if paragraph height changes. Now if we have a big > Martin> paragraph, that is too much. Logical. Note that if a paragraph > Martin> contains an inset (containing one or more paragraphs of its > Martin> own), _all of this together_ counts here as "current > Martin> paragraph". > > Martin> Do we have now the feeling that we understand this? > > Yes, unfortunately. If we decide to drop the issue, we will _have_ to > do something for later 1.4.x versions, I think. Yes, I am hopeful that I can resurrect the singlerow patch. - Martin
signature.asc
Description: This is a digitally signed message part