From d6d909e72af9eeff82bc90b3c5c0fd88f2adecdd Mon Sep 17 00:00:00 2001 From: "hyatt%netscape.com" Date: Thu, 20 Sep 2001 07:46:13 +0000 Subject: [PATCH] Make XUL boxes check maxheight/maxwidth attrs as well as minwidth. r/sr=hewitt,jst --- layout/xul/base/src/nsBox.cpp | 42 ++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/layout/xul/base/src/nsBox.cpp b/layout/xul/base/src/nsBox.cpp index f8b3fe67054d..92f533860ad7 100644 --- a/layout/xul/base/src/nsBox.cpp +++ b/layout/xul/base/src/nsBox.cpp @@ -1240,8 +1240,7 @@ nsIBox::AddCSSMinSize(nsBoxLayoutState& aState, nsIBox* aBox, nsSize& aSize) value.Trim("%"); nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t); - if (val > aSize.width) - aSize.width = val; + aSize.width = val; widthSet = PR_TRUE; } @@ -1253,8 +1252,7 @@ nsIBox::AddCSSMinSize(nsBoxLayoutState& aState, nsIBox* aBox, nsSize& aSize) value.Trim("%"); nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t); - if (val > aSize.height) - aSize.height = val; + aSize.height = val; heightSet = PR_TRUE; } @@ -1291,8 +1289,42 @@ nsIBox::AddCSSMaxSize(nsBoxLayoutState& aState, nsIBox* aBox, nsSize& aSize) heightSet = PR_TRUE; } + nsCOMPtr content; + frame->GetContent(getter_AddRefs(content)); - return NS_OK; + if (content) { + nsIPresContext* presContext = aState.GetPresContext(); + + nsAutoString value; + PRInt32 error; + + if (NS_CONTENT_ATTR_HAS_VALUE == content->GetAttr(kNameSpaceID_None, nsXULAtoms::maxwidth, value)) + { + float p2t; + presContext->GetScaledPixelsToTwips(&p2t); + + value.Trim("%"); + + nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t); + aSize.width = val; + widthSet = PR_TRUE; + } + + if (NS_CONTENT_ATTR_HAS_VALUE == content->GetAttr(kNameSpaceID_None, nsXULAtoms::maxheight, value)) + { + float p2t; + presContext->GetScaledPixelsToTwips(&p2t); + + value.Trim("%"); + + nscoord val = NSIntPixelsToTwips(value.ToInteger(&error), p2t); + aSize.height = val; + + heightSet = PR_TRUE; + } + } + + return (widthSet || heightSet); } PRBool