[Webkit-unassigned] [Bug 22478] New: Incorrect timer firing in caret blinking.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Nov 24 19:55:54 PST 2008


https://bugs.webkit.org/show_bug.cgi?id=22478

           Summary: Incorrect timer firing in caret blinking.
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Mac OS X 10.5
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Platform
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: deanm at chromium.org


Currently the GTK theme code returns 0 from caretBlinkFrequency when the caret
shouldn't blink.  This means the caret should always be drawn.  I would like to
do something similar in the Windows Chromium port.  In Windows you can set the
cursor to never blink.

Currently returning 0 causes the timer to constantly be hit, since a
startRepeating(0) causes the timer to fire right away, get removed (since the
interval is 0), and then go through selectionLayoutChanged, which causes the
timer to be set again since !d->m_caretBlinkTimer.isActive().  This is causing
both a paint and timer storm.

I believe the fix should be simple, something along the lines of (Frame.cpp):

        // Only setup timers if we actually want to blink.
        if (double blinkInterval = theme()->caretBlinkFrequency()) {
            d->m_caretBlinkTimer.startRepeating(blinkInterval);
        }

I will send out a patch for review.  Additionally I would like to change the
misleading name caretBlinkFrequency to be the more accurate caretBlinkInterval.
 Let me know if this sounds ok.


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list