Michael Gerz a écrit :
Martin,

your row signature patch is excellent as it reduces screen flickering significantly (you could the flicking on Windows with qtwin).

FYI, without this patch (I have not update my cvs yet), my Qt4 port has zero flickering :-) I think this patch is solving here a problem which is in the Qt3 frontend. During my port, I have erased all the calls to the "QWidget::repaint" function and I just have one "update" to the screen. In other word, I let Qt decide when to draw. I think the screen redraw that you see is due to an excessive call to repaint() that are not necessary. IMHO this patch tries to reduce the number of painting on the intermediate pixmap and this is good because, as a side effect it reduces also the number of screen repaint. But I am not an expert so maybe this is just because Qt4 is supposed to be totally double-buffered.

Abdel.


However, I don't understand why we have to redraw the whole screen in case of selections. Doesn't your nice "always draw current row" patch capture selections?

I tried the following modification and couldn't find anything going wrong. Could you please enlighten me?

Thanks, Michael


Index: rowpainter.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/rowpainter.C,v
retrieving revision 1.162
diff -u -r1.162 rowpainter.C
--- rowpainter.C        1 Jan 2006 23:06:23 -0000       1.162
+++ rowpainter.C        2 Jan 2006 19:47:28 -0000
@@ -826,7 +826,7 @@
       for (pit_type pit = vi.p1; pit <= vi.p2; ++pit) {
               Paragraph const & par = text->getPar(pit);
               yy += par.ascent();
- paintPar(pi, *bv.text(), pit, 0, yy, select || !vi.singlepar); + paintPar(pi, *bv.text(), pit, 0, yy, /*select ||*/ !vi.singlepar);
               yy += par.descent();
       }




Reply via email to