On Tue, 2006-01-03 at 14:07 +0200, Martin Vermeer wrote:
> On Mon, 2006-01-02 at 20:26 +0100, Michael Gerz wrote:

...

> Additionally I found (knew that already, but without understanding) that
> simple arrow movement keys also always cause a whole-screen redraw.
> Which is a bit silly really. I still don't really understand it: they
> are marked in LyXAction.C as "NoUpdate".
> 
> What I tried was to change these cursor keys over to SingleRowUpdate,
> and then use the needsUpdate boolean to signal that a full-screen update
> is needed.
> 
> It turns out that needsUpdate was actually never set for these functions
> (*); I added code to set this. Now, whenever a full-screen refresh is
> needed -- i.e., when horizontal cursor movement changes row, or vertical
> cursor movement goes over screen edges or changes paragraph -- it is
> set, and a full redraw occurs; otherwise only a single paragraph redraw,
> which is still too much but better.
> 
> Not for inclusion in 1.4.0 any more, but perhaps for 1.4.1.
> 
> - Martin
> 
> (*) $50,000 question: how come a full refresh is always executed
> although the function is of NoUpdate type, even if needsUpdate == false?

Forget this... the old code works _precisely_ as it should. The function
fitCursor takes care of the refresh whenever needed, otherwise <- ->
lead to NO refresh, and up and down to current-row refresh only.
Completely reasonable.

- Martin

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

Reply via email to