mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1094434 - Render resizer appropriately for vertical-lr and vertical-rl writing modes. r=roc
This commit is contained in:
parent
4d8e08f61a
commit
9297d10d65
@ -502,21 +502,28 @@ nsResizerFrame::GetDirection()
|
||||
{-1, 1}, {1, 1}
|
||||
};
|
||||
|
||||
if (!GetContent())
|
||||
if (!GetContent()) {
|
||||
return directions[0]; // default: topleft
|
||||
}
|
||||
|
||||
int32_t index = GetContent()->FindAttrValueIn(kNameSpaceID_None,
|
||||
nsGkAtoms::dir,
|
||||
strings, eCaseMatters);
|
||||
if(index < 0)
|
||||
if (index < 0) {
|
||||
return directions[0]; // default: topleft
|
||||
else if (index >= 8 && StyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL) {
|
||||
}
|
||||
|
||||
if (index >= 8) {
|
||||
// Directions 8 and higher are RTL-aware directions and should reverse the
|
||||
// horizontal component if RTL.
|
||||
Direction direction = directions[index];
|
||||
direction.mHorizontal *= -1;
|
||||
return direction;
|
||||
WritingMode wm = GetWritingMode();
|
||||
if (!(wm.IsVertical() ? wm.IsVerticalLR() : wm.IsBidiLTR())) {
|
||||
Direction direction = directions[index];
|
||||
direction.mHorizontal *= -1;
|
||||
return direction;
|
||||
}
|
||||
}
|
||||
|
||||
return directions[index];
|
||||
}
|
||||
|
||||
|
@ -21,9 +21,15 @@
|
||||
|
||||
// if the direction is rtl, set the rtl attribute so that the
|
||||
// stylesheet can use this to make the cursor appear properly
|
||||
var direction = window.getComputedStyle(this, "").direction;
|
||||
if (direction == "rtl") {
|
||||
this.setAttribute("rtl", "true");
|
||||
var cs = window.getComputedStyle(this, "");
|
||||
if (cs.writingMode == "horizontal-tb") {;
|
||||
if (cs.direction == "rtl") {
|
||||
this.setAttribute("rtl", "true");
|
||||
}
|
||||
} else {
|
||||
if (cs.writingMode == "vertical-rl") {
|
||||
this.setAttribute("rtl", "true");
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</constructor>
|
||||
|
@ -381,7 +381,11 @@ nsNativeTheme::IsDisabled(nsIFrame* aFrame, EventStates aEventStates)
|
||||
bool
|
||||
nsNativeTheme::IsFrameRTL(nsIFrame* aFrame)
|
||||
{
|
||||
return aFrame && aFrame->StyleVisibility()->mDirection == NS_STYLE_DIRECTION_RTL;
|
||||
if (!aFrame) {
|
||||
return false;
|
||||
}
|
||||
WritingMode wm = aFrame->GetWritingMode();
|
||||
return !(wm.IsVertical() ? wm.IsVerticalLR() : wm.IsBidiLTR());
|
||||
}
|
||||
|
||||
bool
|
||||
|
Loading…
Reference in New Issue
Block a user