The updateBackgroundColor mechanism seems to be very seriously flawed and needs to be rewritten, as it is one of the main bottlenecks in the code.
The problem is this: the various calls to updateBackgroundColor() propagate down to the run level, where fp_Run::updateBackgroundColor() querries the PieceTable (!!!) for the background colour property. This is not the way it should be -- *the only* place the runs should ever querry the PT for properties is ::lookupProperties() which in turn is only to be called in response to formatting changes in the PT. If the background colour needs to change because the PT has changed, then let it be done in ::_lookupProperties; if the PT has not changed, then the updateBackground colour has no business of querring the PT. So my question is why do we need updateBackground() colour at all? Tomas
