diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderMeter.cpp')
-rw-r--r-- | Source/WebCore/rendering/RenderMeter.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/Source/WebCore/rendering/RenderMeter.cpp b/Source/WebCore/rendering/RenderMeter.cpp index b539c0a3a..a4b3eca35 100644 --- a/Source/WebCore/rendering/RenderMeter.cpp +++ b/Source/WebCore/rendering/RenderMeter.cpp @@ -55,13 +55,22 @@ HTMLMeterElement* RenderMeter::meterElement() const void RenderMeter::updateLogicalWidth() { RenderBox::updateLogicalWidth(); - setWidth(theme()->meterSizeForBounds(this, pixelSnappedIntRect(frameRect())).width()); + + IntSize frameSize = theme()->meterSizeForBounds(this, pixelSnappedIntRect(frameRect())); + setLogicalWidth(isHorizontalWritingMode() ? frameSize.width() : frameSize.height()); } -void RenderMeter::updateLogicalHeight() +void RenderMeter::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues& computedValues) const { - RenderBox::updateLogicalHeight(); - setHeight(theme()->meterSizeForBounds(this, pixelSnappedIntRect(frameRect())).height()); + RenderBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues); + + LayoutRect frame = frameRect(); + if (isHorizontalWritingMode()) + frame.setHeight(computedValues.m_extent); + else + frame.setWidth(computedValues.m_extent); + IntSize frameSize = theme()->meterSizeForBounds(this, pixelSnappedIntRect(frame)); + computedValues.m_extent = isHorizontalWritingMode() ? frameSize.height() : frameSize.width(); } double RenderMeter::valueRatio() const |