mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-27 06:43:32 +00:00
Bug 1210877 - Make nsBidiPresUtils::RepositionFrame work also for box-decoration-break:clone. r=roc
This commit is contained in:
parent
5808084085
commit
c9a6c1cfaa
@ -1578,19 +1578,22 @@ nsBidiPresUtils::RepositionFrame(nsIFrame* aFrame,
|
||||
// Since the visual order of frame could be different from the
|
||||
// continuation order, we need to remove any border/padding first,
|
||||
// so that we can get the correct isize of the current frame.
|
||||
if (!aFrame->GetPrevContinuation()) {
|
||||
frameISize -= borderPadding.IStart(frameWM);
|
||||
}
|
||||
if (!aFrame->GetNextContinuation()) {
|
||||
frameISize -= borderPadding.IEnd(frameWM);
|
||||
}
|
||||
if (!isFirst) {
|
||||
frameMargin.IStart(frameWM) = 0;
|
||||
borderPadding.IStart(frameWM) = 0;
|
||||
}
|
||||
if (!isLast) {
|
||||
frameMargin.IEnd(frameWM) = 0;
|
||||
borderPadding.IEnd(frameWM) = 0;
|
||||
if (aFrame->StyleBorder()->mBoxDecorationBreak ==
|
||||
NS_STYLE_BOX_DECORATION_BREAK_SLICE) {
|
||||
if (!aFrame->GetPrevContinuation()) {
|
||||
frameISize -= borderPadding.IStart(frameWM);
|
||||
}
|
||||
if (!aFrame->GetNextContinuation()) {
|
||||
frameISize -= borderPadding.IEnd(frameWM);
|
||||
}
|
||||
if (!isFirst) {
|
||||
frameMargin.IStart(frameWM) = 0;
|
||||
borderPadding.IStart(frameWM) = 0;
|
||||
}
|
||||
if (!isLast) {
|
||||
frameMargin.IEnd(frameWM) = 0;
|
||||
borderPadding.IEnd(frameWM) = 0;
|
||||
}
|
||||
}
|
||||
frameISize += borderPadding.IStartEnd(frameWM);
|
||||
|
||||
|
@ -0,0 +1,74 @@
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>Testing box-decoration-break with bidi resolution</title>
|
||||
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1210877">
|
||||
<style type="text/css">
|
||||
|
||||
.test {
|
||||
box-decoration-break: slice;
|
||||
background: black;
|
||||
}
|
||||
.p {
|
||||
padding:11px 3px 5px 7px;
|
||||
}
|
||||
.b {
|
||||
border: 1px solid blue;
|
||||
border-width:3px 5px 7px 11px;
|
||||
}
|
||||
.m {
|
||||
margin:5px 7px 11px 3px;
|
||||
}
|
||||
.direction {
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
x {display:inline-block; width:20px; height:10px; background:lime; }
|
||||
y {display:inline-block; width:30px; height:1px; background:lime; }
|
||||
d {display:inline-block; border:10px solid red }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div style="float:left; width: 100px;">
|
||||
<span class="test p"><x></x></span><br>
|
||||
<span class="test p"><y></y></span><br><br><br>
|
||||
<span class="test b"><x></x></span><br>
|
||||
<span class="test b"><y></y></span><br><br><br>
|
||||
<span class="test p b"><x></x></span><br>
|
||||
<span class="test p b"><y></y></span><br><br><br>
|
||||
<span class="test m"><x></x></span><br>
|
||||
<span class="test m"><y></y></span><br><br><br>
|
||||
<span class="test p m"><x></x></span><br>
|
||||
<span class="test p m"><y></y></span><br><br><br>
|
||||
<span class="test b m"><x></x></span><br>
|
||||
<span class="test b m"><y></y></span><br><br><br>
|
||||
<span class="test p b m"><x></x></span><br>
|
||||
<span class="test p b m"><y></y></span><br><br><br>
|
||||
|
||||
|
||||
</div><div style="float:left; width: 100px; text-align:right">
|
||||
|
||||
<span class="test p"><y></y></span><br>
|
||||
<span class="test p"><x></x></span><br><br><br>
|
||||
<span class="test b"><y></y></span><br>
|
||||
<span class="test b"><x></x></span><br><br><br>
|
||||
<span class="test p b"><y></y></span><br>
|
||||
<span class="test p b"><x></x></span><br><br><br>
|
||||
<span class="test m"><y></y></span><br>
|
||||
<span class="test m"><x></x></span><br><br><br>
|
||||
<span class="test p m"><y></y></span><br>
|
||||
<span class="test p m"><x></x></span><br><br><br>
|
||||
<span class="test b m"><y></y></span><br>
|
||||
<span class="test b m"><x></x></span><br><br><br>
|
||||
<span class="test p b m"><y></y></span><br>
|
||||
<span class="test p b m"><x></x></span><br><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,64 @@
|
||||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
||||
-->
|
||||
<html><head>
|
||||
<meta charset="utf-8">
|
||||
<title>Testing box-decoration-break with bidi resolution</title>
|
||||
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1210877">
|
||||
<link rel="help" href="http://dev.w3.org/csswg/css-break/#break-decoration">
|
||||
<link rel="match" href="box-decoration-break-with-bidi-ref.html">
|
||||
<style type="text/css">
|
||||
|
||||
.test {
|
||||
box-decoration-break: clone;
|
||||
background: black;
|
||||
}
|
||||
.p {
|
||||
padding:11px 3px 5px 7px;
|
||||
}
|
||||
.b {
|
||||
border: 1px solid blue;
|
||||
border-width:3px 5px 7px 11px;
|
||||
}
|
||||
.m {
|
||||
margin:5px 7px 11px 3px;
|
||||
}
|
||||
.direction {
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
x {display:inline-block; width:20px; height:10px; background:lime; }
|
||||
y {display:inline-block; width:30px; height:1px; background:lime; }
|
||||
d {display:inline-block; border:10px solid red }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div style="float:left; width: 100px;">
|
||||
<span class="test p"><x></x><br><y></y></span><br><br><br>
|
||||
<span class="test b"><x></x><br><y></y></span><br><br><br>
|
||||
<span class="test p b"><x></x><br><y></y></span><br><br><br>
|
||||
<span class="test m"><x></x><br><y></y></span><br><br><br>
|
||||
<span class="test p m"><x></x><br><y></y></span><br><br><br>
|
||||
<span class="test b m"><x></x><br><y></y></span><br><br><br>
|
||||
<span class="test p b m"><x></x><br><y></y></span><br><br><br>
|
||||
|
||||
<div class="direction"></div> <!-- to trigger bidi resolution -->
|
||||
|
||||
</div><div style="float:left; width: 100px; text-align:right">
|
||||
|
||||
<span class="test p"><y></y><br><x></x></span><br><br><br>
|
||||
<span class="test b"><y></y><br><x></x></span><br><br><br>
|
||||
<span class="test p b"><y></y><br><x></x></span><br><br><br>
|
||||
<span class="test m"><y></y><br><x></x></span><br><br><br>
|
||||
<span class="test p m"><y></y><br><x></x></span><br><br><br>
|
||||
<span class="test b m"><y></y><br><x></x></span><br><br><br>
|
||||
<span class="test p b m"><y></y><br><x></x></span><br><br><br>
|
||||
|
||||
<div class="direction"></div> <!-- to trigger bidi resolution -->
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -7,3 +7,4 @@ random-if(!gtkWidget) HTTP(..) == box-decoration-break-border-image.html box-dec
|
||||
== box-decoration-break-block-border-padding.html box-decoration-break-block-border-padding-ref.html
|
||||
== box-decoration-break-block-margin.html box-decoration-break-block-margin-ref.html
|
||||
fuzzy-if(!Android,1,5) fuzzy-if(Android,8,6627) == box-decoration-break-first-letter.html box-decoration-break-first-letter-ref.html
|
||||
== box-decoration-break-with-bidi.html box-decoration-break-with-bidi-ref.html
|
||||
|
Loading…
Reference in New Issue
Block a user