diff options
Diffstat (limited to 'webkit/pending/RenderButton.cpp')
-rw-r--r-- | webkit/pending/RenderButton.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/webkit/pending/RenderButton.cpp b/webkit/pending/RenderButton.cpp index c8047d5..34d30f0 100644 --- a/webkit/pending/RenderButton.cpp +++ b/webkit/pending/RenderButton.cpp @@ -38,6 +38,7 @@ RenderButton::RenderButton(Node* node) : RenderFlexibleBox(node) , m_buttonText(0) , m_inner(0) + , m_default(false) { } @@ -73,6 +74,16 @@ void RenderButton::setStyle(RenderStyle* style) setupInnerStyle(m_inner->style()); } setReplaced(isInline()); + + if (!m_default && theme()->isDefault(this)) { + if (!m_timer) + m_timer.set(new Timer<RenderButton>(this, &RenderButton::timerFired)); + m_timer->startRepeating(0.01); + m_default = true; + } else if (m_default && !theme()->isDefault(this)) { + m_default = false; + m_timer.clear(); + } } void RenderButton::setupInnerStyle(RenderStyle* style) { @@ -133,5 +144,9 @@ IntRect RenderButton::controlClipRect(int tx, int ty) const return IntRect(tx + borderLeft(), ty + borderTop(), m_width - borderLeft() - borderRight(), m_height - borderTop() - borderBottom()); } +void RenderButton::timerFired(Timer<RenderButton>*) +{ + repaint(); +} } // namespace WebCore |