зеркало из https://github.com/mozilla/gecko-dev.git
If the frame has visible content that extends outside its content area, then the view needs to be marked as having transparent content
This commit is contained in:
Родитель
bf942c2800
Коммит
e592be8776
|
@ -7141,6 +7141,17 @@ SyncAndInvalidateView(nsIView* aView, nsIFrame* aFrame,
|
|||
}
|
||||
}
|
||||
|
||||
// If the frame has visible content that overflows the content area, then we
|
||||
// need the view marked as having transparent content
|
||||
if (NS_STYLE_OVERFLOW_VISIBLE == disp->mOverflow) {
|
||||
nsFrameState frameState;
|
||||
|
||||
aFrame->GetFrameState(&frameState);
|
||||
if (frameState & NS_FRAME_OUTSIDE_CHILDREN) {
|
||||
viewHasTransparentContent = PR_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (viewIsVisible) {
|
||||
aViewManager->SetViewContentTransparency(aView, viewHasTransparentContent);
|
||||
aViewManager->SetViewVisibility(aView, nsViewVisibility_kShow);
|
||||
|
|
|
@ -1292,6 +1292,14 @@ nsFrame::DidReflow(nsIPresContext& aPresContext,
|
|||
}
|
||||
}
|
||||
|
||||
// If we have visible content that overflows the content area, then we
|
||||
// need the view marked as having transparent content
|
||||
if (NS_STYLE_OVERFLOW_VISIBLE == display->mOverflow) {
|
||||
if (mState & NS_FRAME_OUTSIDE_CHILDREN) {
|
||||
viewHasTransparentContent = PR_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure visibility is correct
|
||||
vm->SetViewVisibility(mView, viewIsVisible ? nsViewVisibility_kShow :
|
||||
nsViewVisibility_kHide);
|
||||
|
|
|
@ -1292,6 +1292,14 @@ nsFrame::DidReflow(nsIPresContext& aPresContext,
|
|||
}
|
||||
}
|
||||
|
||||
// If we have visible content that overflows the content area, then we
|
||||
// need the view marked as having transparent content
|
||||
if (NS_STYLE_OVERFLOW_VISIBLE == display->mOverflow) {
|
||||
if (mState & NS_FRAME_OUTSIDE_CHILDREN) {
|
||||
viewHasTransparentContent = PR_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure visibility is correct
|
||||
vm->SetViewVisibility(mView, viewIsVisible ? nsViewVisibility_kShow :
|
||||
nsViewVisibility_kHide);
|
||||
|
|
|
@ -7141,6 +7141,17 @@ SyncAndInvalidateView(nsIView* aView, nsIFrame* aFrame,
|
|||
}
|
||||
}
|
||||
|
||||
// If the frame has visible content that overflows the content area, then we
|
||||
// need the view marked as having transparent content
|
||||
if (NS_STYLE_OVERFLOW_VISIBLE == disp->mOverflow) {
|
||||
nsFrameState frameState;
|
||||
|
||||
aFrame->GetFrameState(&frameState);
|
||||
if (frameState & NS_FRAME_OUTSIDE_CHILDREN) {
|
||||
viewHasTransparentContent = PR_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (viewIsVisible) {
|
||||
aViewManager->SetViewContentTransparency(aView, viewHasTransparentContent);
|
||||
aViewManager->SetViewVisibility(aView, nsViewVisibility_kShow);
|
||||
|
|
Загрузка…
Ссылка в новой задаче