Andre Poenitz wrote: > On Wed, Sep 17, 2003 at 12:44:06PM +0200, Alfredo Braunstein wrote: >> Andre Poenitz wrote: >> >> > I think one solution which sounds expensive but probably is not at all >> > is to get rid of the RowLists entirely and re-compute everything on >> > demand (i.e. once per user interaction - we do something similar >> > already). This way one paragraph can be shown in two places without >> > problems and without having 'RowList caches'. >> >> I think it's feasible, but very tricky. We will have to deal with unknown >> y positions? If you are only rebreaking what it's shown, then the y >> position of on screen paragraphs would be unknown. > > We'd may need some size cache. This can live in the BufferView as a > > map<Paragraph *, Position> > map<Inset *, Position> > > or similar which gets filled in the initial metrics phase and updated in > each draw. > > To access something by coordinate, browse that cache.
Seems reasonable. And it implies to have different bufferviews for different loaded buffers, which can be done as a first step (solving the buffer switching slowness). Alfredo