зеркало из https://github.com/mozilla/gecko-dev.git
Ensure that continuation frames after the end of a directional run are non-fluid. Bug 490559, r+sr=roc
This commit is contained in:
Родитель
0e7456c02a
Коммит
66f3028c95
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<head>
|
||||
<script type="text/javascript">
|
||||
function ddoe() {
|
||||
var x=document.getElementById('a');
|
||||
x.parentNode.removeChild(x);
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body onload="ddoe()">
|
||||
<div style="width: 1px;">
|
||||
<span id="a">𐶅</span>
|
||||
𐶅
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -246,6 +246,7 @@ load 483604-1.xhtml
|
|||
load 488390-1.xhtml
|
||||
load 489691.html
|
||||
load 490376-1.xhtml
|
||||
load 490559-1.html
|
||||
load 490747.html
|
||||
load 492014.xhtml
|
||||
load 492112-1.xhtml
|
||||
|
|
|
@ -514,6 +514,16 @@ nsBidiPresUtils::Resolve(nsBlockFrame* aBlockFrame,
|
|||
do {
|
||||
} while (mLogicalFrames[++newIndex]->GetType() == nsGkAtoms::directionalFrame);
|
||||
RemoveBidiContinuation(frame, frameIndex, newIndex, lineOffset);
|
||||
} else if (runLength == fragmentLength) {
|
||||
/*
|
||||
* The directional run ends at the end of the frame. Make sure that
|
||||
* the next frame is a non-fluid continuation
|
||||
*/
|
||||
nsIFrame* next = frame->GetNextInFlow();
|
||||
if (next) {
|
||||
frame->SetNextContinuation(next);
|
||||
next->SetPrevContinuation(frame);
|
||||
}
|
||||
}
|
||||
frame->AdjustOffsetsForBidi(contentOffset, contentOffset + fragmentLength);
|
||||
if (lineNeedsUpdate) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче