Martin Vermeer a écrit :
On Sun, Jan 08, 2006 at 04:38:21PM +0100, Michael Gerz wrote:
Abdel wrote:

About the flickering, I don't know. You could verify with my earlier
published PAINTING debug patch, precisely which rows are getting
updated by the LyX painter.
AFAIK, this flickering is not due to lyx internal repainting (i.e to the pixmap) but to the screen update. What Michael sees is a background repaint immediately followed by the pixmap repaint on screen. And this is what my simple patch is fixing (as advised by Jean-Marc) by eliminating the superfluous background repainting.

Hum, actually I think there might be another reason. Michael, could you please try this patch:

Index: qscreen.C
===================================================================

-       owner_.getContent()->repaint(
+       owner_.getContent()->update(
Abdel, Martin,

I must confess that I am a bit puzzled. If I understand correctly, it doesn't matter how clever we are as long as the background is repainted every time.

Maybe these results will help you to sort out things:

1. With a fresh lyx-devel snapshot (retrieved from CVS yesterday), the flickering occurs with every character insertion/deletion and text selection but not when moving the cursor. 2. With the additional simple QWorkarea.C patch proposed by J-M, I see no flickering at all (even without Martin's recent patch proposals) 3. With the above qscreen.C patch (as an alternative to 2.), the flickering is still there. (It also doesn't help to also replace "repaint" by "update" in method removeCursor)

AFAICS, Martin's work is orthogonal to Abdel's. I leave it to you to draw the final conclusion. Do we loose anything if we change QWorkarea.C?

Thank you very much for all the efforts in advance! You make people really happy!

Michael

Yes, I agree... I think "flicker" and "speed" are orthogonal problems.

The fact that cursor movement doesn't produce flicker is because then
there literally is no screen update.

- Martin

Yep and IMHO the no-background change is a must for windows. If it doesn't change anything under linux and Mac (it shouldn't) let it be in. If you think it's a risk, put an #ifdef QT_WIN and #endif around it.

Abdel.

Reply via email to