On Wed, Jun 04, 2003 at 07:37:06PM +0200, Lars Gullik Bjønnes wrote: > | I don't understand the rebreaking point. Do you mean breaking a par into > | two or some re-calculation of which part of a par belongs to which row? > | If the latter, I think the solution is consequent two-phase drawing with > | a full rebreak of all visible paragraphs in the metrics phase. > > Rebreaking is slow.
Maybe the way it is currently implemented. There is no technical reason for it. Adding up the width of some things (char and insets), keeping track of the last feasible break point and breaking there when the summed width surpasses some maximum is a nobrainer and certainly not "slow", given that we are going to draw these things later. > Read my old mail on how to do par by par reabreak, > called lazy_lyxtext.txt (it is old so it might be bit out of date) I had a look at it last night. It is a bit outdated, but the ideas fit nicely in the two stage drawing system. So a plan could be as follows: 1. make it work for insettext: - remove functional unneeded stuff from insettext - move the (re)creation and any manipulation of the LyXText to the metrics() phase. 2. make it work for insettabular - remove functional unneeded stuff from insettext - move the (re)creation of any metrics information to the metrics() phase. 3. remove update() 4. re-scan insettext for further simplification 5. have a look what parts of LyXText are actually needed in the insets (maybe per-paragraph RowList are possible) 6. try to come up with a solution using only those parts for the main text 7. remove the unneeded parts from LyXText Note that we do not have to do all of that in the next three days and we could stop at any time in the process and still have a working LyX. Andre' -- Those who desire to give up Freedom in order to gain Security, will not have, nor do they deserve, either one. (T. Jefferson or B. Franklin or both...)