summaryrefslogtreecommitdiffstats
path: root/webkit/pending/RenderButton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/pending/RenderButton.cpp')
-rw-r--r--webkit/pending/RenderButton.cpp15
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