From 953e1a3dbc2bf9d13bff6fffaef401e07cd7abec Mon Sep 17 00:00:00 2001 From: "troy%netscape.com" Date: Sat, 23 Jan 1999 05:47:55 +0000 Subject: [PATCH] Part of the fix for bug #2502. For the time being mark relative/absolute positioned views as having transparent content git-svn-id: svn://10.0.0.236/trunk@18414 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/generic/nsHTMLContainerFrame.cpp | 10 ++++++++++ mozilla/layout/html/base/src/nsHTMLContainerFrame.cpp | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/mozilla/layout/generic/nsHTMLContainerFrame.cpp b/mozilla/layout/generic/nsHTMLContainerFrame.cpp index 3655a155903..c080740ee06 100644 --- a/mozilla/layout/generic/nsHTMLContainerFrame.cpp +++ b/mozilla/layout/generic/nsHTMLContainerFrame.cpp @@ -316,6 +316,16 @@ nsHTMLContainerFrame::CreateViewForFrame(nsIPresContext& aPresContext, !display->mVisible) { viewManager->SetViewContentTransparency(view, PR_TRUE); } + // XXX If it's relatively positioned or absolutely positioned then we + // need to mark it as having transparent content, too. See bug #2502 + const nsStylePosition* position = (const nsStylePosition*) + aStyleContext->GetStyleData(eStyleStruct_Position); + + if ((NS_STYLE_POSITION_RELATIVE == position->mPosition) || + (NS_STYLE_POSITION_ABSOLUTE == position->mPosition)) { + viewManager->SetViewContentTransparency(view, PR_TRUE); + } + viewManager->SetViewOpacity(view, color->mOpacity); NS_RELEASE(viewManager); } diff --git a/mozilla/layout/html/base/src/nsHTMLContainerFrame.cpp b/mozilla/layout/html/base/src/nsHTMLContainerFrame.cpp index 3655a155903..c080740ee06 100644 --- a/mozilla/layout/html/base/src/nsHTMLContainerFrame.cpp +++ b/mozilla/layout/html/base/src/nsHTMLContainerFrame.cpp @@ -316,6 +316,16 @@ nsHTMLContainerFrame::CreateViewForFrame(nsIPresContext& aPresContext, !display->mVisible) { viewManager->SetViewContentTransparency(view, PR_TRUE); } + // XXX If it's relatively positioned or absolutely positioned then we + // need to mark it as having transparent content, too. See bug #2502 + const nsStylePosition* position = (const nsStylePosition*) + aStyleContext->GetStyleData(eStyleStruct_Position); + + if ((NS_STYLE_POSITION_RELATIVE == position->mPosition) || + (NS_STYLE_POSITION_ABSOLUTE == position->mPosition)) { + viewManager->SetViewContentTransparency(view, PR_TRUE); + } + viewManager->SetViewOpacity(view, color->mOpacity); NS_RELEASE(viewManager); }