mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 21:00:50 +00:00
Bug 696307. Floats in a different block to their placeholders should only be painted once. r=mats
This commit is contained in:
parent
6e8498d824
commit
3efeb8c08d
@ -1885,7 +1885,11 @@ nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder* aBuilder,
|
||||
nsPlaceholderFrame* placeholder = static_cast<nsPlaceholderFrame*>(child);
|
||||
child = placeholder->GetOutOfFlowFrame();
|
||||
NS_ASSERTION(child, "No out of flow frame?");
|
||||
if (!child || nsLayoutUtils::IsPopup(child))
|
||||
// If 'child' is a pushed float then it's owned by a block that's not an
|
||||
// ancestor of the placeholder, and it will be painted by that block and
|
||||
// should not be painted through the placeholder.
|
||||
if (!child || nsLayoutUtils::IsPopup(child) ||
|
||||
(child->GetStateBits() & NS_FRAME_IS_PUSHED_FLOAT))
|
||||
return NS_OK;
|
||||
// Make sure that any attempt to use childType below is disappointed. We
|
||||
// could call GetType again but since we don't currently need it, let's
|
||||
|
5
layout/reftests/bugs/696307-1-ref.html
Normal file
5
layout/reftests/bugs/696307-1-ref.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html><body>
|
||||
<div style="float:left; width:200px;">X</div>
|
||||
<div style="float:left; background:rgba(0,0,0,0.5); width:210px;">Y</div>
|
||||
</body></html>
|
4
layout/reftests/bugs/696307-1.html
Normal file
4
layout/reftests/bugs/696307-1.html
Normal file
@ -0,0 +1,4 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html><body>
|
||||
<div style="-moz-column-count:3; -moz-column-gap:0; width:600px;">X<div style="float:left; background:rgba(0,0,0,0.5);"><div style="position:absolute;">Y</div><span style="padding-left:210px;"></span></div></div>
|
||||
</body></html>
|
@ -1670,4 +1670,5 @@ fails-if(layersGPUAccelerated&&cocoaWidget) == 654950-1.html 654950-1-ref.html #
|
||||
== 670467-2.html 670467-2-ref.html
|
||||
!= 691087-1.html 691087-1-ref.html
|
||||
== 691571-1.html 691571-1-ref.html
|
||||
== 696307-1.html 696307-1-ref.html
|
||||
== 696739-1.html 696739-1-ref.html
|
||||
|
Loading…
x
Reference in New Issue
Block a user