Jean-Marc Lasgouttes a écrit :
"Andre" == Andre Poenitz <[EMAIL PROTECTED]> writes:

Andre> There is indeed no reason (in theory) for us to use repaint().
Andre> update() just does the right thing, possibly combining repeated
Andre> request to a single one.

Andre> In practivce, there might have been a reason at some point of
Andre> time where repaint() worked (better), although I doubt that
Andre> reason is still valid.

What happened to this patch? Did we decide something about it? Does it
help in some cases?

Michael Gerz tested it on windows where it made no harm. I am quite sure it would make no harm on any platform and it might help "snappiness" for low-end platform. I guess this is for 1.4.1. Attached the updated patch.

There is something I wonder about this repaint thing. In QContentPane.C, there is a kind of buffer for pressed keys (keyeventQueue_); IIRC that was introduced by Lars in order to improve snappiness whenever a user hold down the PageDown key or the Down key. It was also created to avoid "occasional drop of chars".

http://thread.gmane.org/gmane.editors.lyx.devel/43381

In my qt4 port I have replaced all "repaint" calls with "update" and I have commented out this buffer machinery. The end result is very snappy and I don't see the effects described in the above thread.

Food for thought...

Abdel.



JMarc


Index: qscreen.C
===================================================================
RCS file: /var/cvs/lyx/lyx-devel/src/frontends/qt2/qscreen.C,v
retrieving revision 1.29
diff -u -r1.29 qscreen.C
--- qscreen.C   19 May 2005 16:34:02 -0000      1.29
+++ qscreen.C   24 Jan 2006 16:14:34 -0000
@@ -144,7 +144,7 @@
                break;
        }

-       owner_.getContent()->repaint(
+       owner_.getContent()->update(
                cursor_x_, cursor_y_,
                cursor_w_, cursor_h_);
 }
@@ -160,5 +160,5 @@
               &nocursor_pixmap_, 0, 0, cursor_w_, cursor_h_);

        owner_.getContent()
-               ->repaint(cursor_x_, cursor_y_, cursor_w_, cursor_h_);
+               ->update(cursor_x_, cursor_y_, cursor_w_, cursor_h_);
 }

Reply via email to