Jean-Marc Lasgouttes wrote:

> Alfredo> This is important. I don't understand why could we be drawing
> Alfredo> at such large coordinates. Are you sure this is coordbranch?
> Alfredo> [btw, you don't happend to have a > 4000 pixels high monitor,
> Alfredo> do you?]
> 
> I updated CoordBranch, rebuild and retry. Here is the recipe:
> 
> - launch LyX
> - Help>Tutorial
> - Ctrl-End
> - crash

Can't reproduce.
 
> Relevant part of the Backtrace is appended to the message.

I'll have a look.
 
> I think that Andre explained that fitCursor is trying to access cache
> coordinates that are not initialized (because this part of text has
> not been displayed yet), and this trigger the assertion (which indeed
> relies on the fact that nobody has a 4000 pixels high monitor (yet!)).

See, this part of the code has been rewritten. We never draw things too much
off-screen, and the screen goes from 0 to workHeight(). Now there is no
such thing as "absolute document coordinates": coordinates are used to draw
on screen, then to interpret some user action and then discarded. This is
why if you don't have a > 4000 pixels screen the above assert doesn't make
any sense.

> I seem to remember that the problem is that we do a full redraw of the
> screen everytime the cursor moves, which was not the case earlier. We
> already did some gprof runs on it with Andre in Chemnitz, but the
> small optimizations we did did not help much (10 or 15%, if I remember
> well).

Yes, we redraw on every cursor movement when selecting. Some optimization is
obviously possible, as we could only redraw the border of the selection
(the cursor row), but this is for later. What I suspect is that also the
metrics step is too slow for some reason. I will check later (at profiling
time).

Regards, Alfredo


Reply via email to