On 1/2/07, Robert Strandh strandh@labri.fr wrote:
I maintain my previous analysis that it would be a better idea to store relative positions in output records, so that moving an output record does not require traversing its children.
I agree completely. Use of absolute coordinates here is a particularly boneheaded aspect of CLIM, particularly in contrast with the very nice sheet/windowing functions based on transformations.
The solution to this problem seems to be to realize that incremental redisplay must traverse all the output records anyway (to see what has changed), and so it would be a better idea to put off the computation of the bounding rectangle until the end of this entire process.
Do you think it makes sense to generally make bounding rectangles computed lazily, caching them? Having ran into quadratic behavior a couple times myself (during normal text output, and in the grapher), this seemed like the logical approach.