On Fri, Mar 19, 2010 at 1:22 AM, rgheck <rgh...@bobjweil.com> wrote: > On 03/18/2010 07:01 PM, Dov Feldstern wrote: >> >> So, in order to figure this out, I added the debug prints mentioned >> above, and then I noticed that only when we're at the end of a word, >> but not anywhere else, then a line is printed every time the cursor >> blinks --- whether or not the cursor is on the screen. >> >> > > I've seen this, too. Surely it would make sense to disable the cursor > blinking when the little guy is off screen, right? Perhaps that is the real > bug. But still, I think my patch makes sense. I see TONS of metrics being > calculated when I move the mouse, which is very weird---the point being that > we can't be quite sure when isRTLBoundary might be called. So we should make > sure we have metrics, like we make sure we have a non-null pointer. > > I think the issue here, in a way, is that > par_metrics_[pit] > has a nasty side effect. Maps can be dangerous. > >> In other words: something is causing isRTLBoundary to be called every time >> the >> cursor blinks when it is at the end of the word, even if it is off the >> screen, and the first time that that happens, there are no metrics! >> >> > > As Vincent notes, the "end of the word" thing is due to something in > getFont(). > > So I'd suggest we do two things: (i) commit the check for metrics, which > makes sense anyway; and (ii) disable the cursor blinking when the cursor is > off-screen, which also makes sense anyway. >
Sounds good to me... I just want to double check that your change doesn't adversely affect the test-case for which that code was originally added --- I'll get back to you on that in a few minutes... > rh > >