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

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to