diff options
author | Patrick Scott <> | 2009-04-15 07:10:56 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-15 07:10:56 -0700 |
commit | 75e7a2d7fc509ddabd80b7f36a3e85fa16cfb26f (patch) | |
tree | 19a72c9a7a1e17dce67e400b0df7f816e34a767a /WebCore | |
parent | e3185f35ec01f131692b061d4fe786ef5cd5c7bf (diff) | |
parent | 7ad55b5af9aa00b7903d3a73b0ac2555db6a4e91 (diff) | |
download | external_webkit-75e7a2d7fc509ddabd80b7f36a3e85fa16cfb26f.zip external_webkit-75e7a2d7fc509ddabd80b7f36a3e85fa16cfb26f.tar.gz external_webkit-75e7a2d7fc509ddabd80b7f36a3e85fa16cfb26f.tar.bz2 |
Merge branch 'readonly-p4-master'
Diffstat (limited to 'WebCore')
-rw-r--r-- | WebCore/rendering/RenderPartObject.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/WebCore/rendering/RenderPartObject.cpp b/WebCore/rendering/RenderPartObject.cpp index 828026e..47a5954 100644 --- a/WebCore/rendering/RenderPartObject.cpp +++ b/WebCore/rendering/RenderPartObject.cpp @@ -349,10 +349,11 @@ void RenderPartObject::layout() // Update the dimensions to get the correct minimum preferred width updateWidgetPosition(); - // Use the preferred width if it is larger. - setWidth(max(w, root->minPrefWidth())); int extraWidth = paddingLeft() + paddingRight() + borderLeft() + borderRight(); int extraHeight = paddingTop() + paddingBottom() + borderTop() + borderBottom(); + // Use the preferred width if it is larger. + setWidth(max(w, root->minPrefWidth()) + extraWidth); + // Resize the view to recalc the height. int height = h - extraHeight; int width = w - extraWidth; @@ -367,10 +368,10 @@ void RenderPartObject::layout() view->layout(); int contentHeight = view->contentsHeight(); int contentWidth = view->contentsWidth(); - // Do not shrink iframes with specified sizes - if (contentHeight > h || style()->height().isAuto()) - setHeight(contentHeight); - setWidth(contentWidth); + // Do not shrink iframes with a specified height. + if (contentHeight > (h - extraHeight) || style()->height().isAuto()) + setHeight(contentHeight + extraHeight); + setWidth(contentWidth + extraWidth); // Update one last time updateWidgetPosition(); @@ -404,8 +405,9 @@ void RenderPartObject::calcWidth() { // width updateWidgetPosition(); + int extraWidth = paddingLeft() + paddingRight() + borderLeft() + borderRight(); // Set the width - setWidth(max(width(), root->minPrefWidth())); + setWidth(max(width(), root->minPrefWidth()) + extraWidth); // Update based on the new width updateWidgetPosition(); @@ -414,7 +416,7 @@ void RenderPartObject::calcWidth() { while (view->needsLayout()) view->layout(); - setWidth(view->contentsWidth()); + setWidth(view->contentsWidth() + extraWidth); // Update one last time to ensure the dimensions. updateWidgetPosition(); @@ -437,8 +439,9 @@ void RenderPartObject::calcHeight() { // Do not shrink the height if the size is specified int h = view->contentsHeight(); - if (h > height() || style()->height().isAuto()) - setHeight(h); + int extraHeight = paddingTop() + paddingBottom() + borderTop() + borderBottom(); + if (h > height() - extraHeight || style()->height().isAuto()) + setHeight(h + extraHeight); // Update one last time to ensure the dimensions. updateWidgetPosition(); |