зеркало из 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) {
|
if (viewIsVisible) {
|
||||||
aViewManager->SetViewContentTransparency(aView, viewHasTransparentContent);
|
aViewManager->SetViewContentTransparency(aView, viewHasTransparentContent);
|
||||||
aViewManager->SetViewVisibility(aView, nsViewVisibility_kShow);
|
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
|
// Make sure visibility is correct
|
||||||
vm->SetViewVisibility(mView, viewIsVisible ? nsViewVisibility_kShow :
|
vm->SetViewVisibility(mView, viewIsVisible ? nsViewVisibility_kShow :
|
||||||
nsViewVisibility_kHide);
|
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
|
// Make sure visibility is correct
|
||||||
vm->SetViewVisibility(mView, viewIsVisible ? nsViewVisibility_kShow :
|
vm->SetViewVisibility(mView, viewIsVisible ? nsViewVisibility_kShow :
|
||||||
nsViewVisibility_kHide);
|
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) {
|
if (viewIsVisible) {
|
||||||
aViewManager->SetViewContentTransparency(aView, viewHasTransparentContent);
|
aViewManager->SetViewContentTransparency(aView, viewHasTransparentContent);
|
||||||
aViewManager->SetViewVisibility(aView, nsViewVisibility_kShow);
|
aViewManager->SetViewVisibility(aView, nsViewVisibility_kShow);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче