On Fri, 2006-11-03 at 00:05 +0100, Abdelrazak Younes wrote: > Asger Ottar Alstrup wrote: > > - Crashes with multiple windows open. It seems that Buffer contains Rows > > of paragraphs, and this is no good in a multiple view setting. Options: > > a) Rework Buffer to not have Rows (big change, risky), b) Disable > > multiple views completely for now, c) Disable multiple views of same > > document only. Seems to me option C would be safe and still provide some > > benefit to the user. > > Option d) disable multi-window and implement multiple WorkArea within a > QTabWidget. This will allow to open two tabs showing different part of > the same document. This is a nice work-around of the bad "Paragraph row" > model as the two BufferView will have a fortiori the same dimensions. > > > > > > - Cursor trouble: Full refresh on each blink. Abdel says it's a lot of > > work to fix this without the pixamp. Options a) Spend that time, b) > > Revert to old painting scheme. Given that the removal of the pixmap did > > not give us any noticable speed-up, I think we should revert this change > > which was done the last Monday of the meeting. > > I have now restored the backing pixmap. "-dbg painting" will print at > the console which area is refreshed.
Yes, this is a very good idea. Note that we still are not where we should be (and where 1.4 is): still after every keypress, the whole screen will be refreshed in the second update step. The culprit appears to be the statement view()->buffer()->changed() in lyxfunc.C. This sends a signal LyXView to redraw the whole screen in WorkArea. There is no way to specify anything less than a full screen. Unfortunately commenting out this line isn't good either: then not even the current row gets updated (but it will be if you cover and expose theLyX window...) This should be redone somehow to do a current-paragraph update if Update::SinglePar is set. Can you do that with signal-slot? - Martin ... > > Other problems without hope: > > > > - Mac is unusable because of poor performance, among other things. I believe it is precisely this issue. > > Options: a) Revert commit from 14th of July which disabled partial > > refresh. > > I am afraid this is not possible. The BufferView class has changed a > _lot_ since that time. Literally, you're correct. Materially something like this is necessary. > > This is a little dangerous, since it is known that this might > > cause invalid coord cache entries. b) Do a), but also implement partial > > coord cache refresh to make it safe. c) Implement a caching painting > > scheme, such that only changed paint requests are done. Let's cross that bridge when we get to it. > I won't say this is without hope. This just needs some time to implement > the correct solution. This is for sure not a show-stopper OK. - Martin
signature.asc
Description: This is a digitally signed message part