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
signature.asc
Description: This is a digitally signed message part