forked from mirrors/gecko-dev
Bug 1801458 - [refactor] Migrate NS_STYLE_UNICODE_BIDI_* defines r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D162487
This commit is contained in:
parent
14e89d0d4e
commit
a0881d2bec
10 changed files with 40 additions and 34 deletions
|
|
@ -85,7 +85,8 @@ static char16_t GetBidiOverride(ComputedStyle* aComputedStyle) {
|
|||
return kLRO;
|
||||
}
|
||||
const nsStyleTextReset* text = aComputedStyle->StyleTextReset();
|
||||
if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_BIDI_OVERRIDE) {
|
||||
if (text->mUnicodeBidi == StyleUnicodeBidi::BidiOverride ||
|
||||
text->mUnicodeBidi == StyleUnicodeBidi::IsolateOverride) {
|
||||
return StyleDirection::Rtl == vis->mDirection ? kRLO : kLRO;
|
||||
}
|
||||
return 0;
|
||||
|
|
@ -104,21 +105,21 @@ static char16_t GetBidiOverride(ComputedStyle* aComputedStyle) {
|
|||
static char16_t GetBidiControl(ComputedStyle* aComputedStyle) {
|
||||
const nsStyleVisibility* vis = aComputedStyle->StyleVisibility();
|
||||
const nsStyleTextReset* text = aComputedStyle->StyleTextReset();
|
||||
if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_EMBED) {
|
||||
return StyleDirection::Rtl == vis->mDirection ? kRLE : kLRE;
|
||||
}
|
||||
if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_ISOLATE) {
|
||||
if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_BIDI_OVERRIDE) {
|
||||
// isolate-override
|
||||
switch (text->mUnicodeBidi) {
|
||||
case StyleUnicodeBidi::Embed:
|
||||
return StyleDirection::Rtl == vis->mDirection ? kRLE : kLRE;
|
||||
case StyleUnicodeBidi::Isolate:
|
||||
// <bdi> element already has its directionality set from content so
|
||||
// we never need to return kFSI.
|
||||
return StyleDirection::Rtl == vis->mDirection ? kRLI : kLRI;
|
||||
case StyleUnicodeBidi::IsolateOverride:
|
||||
case StyleUnicodeBidi::Plaintext:
|
||||
return kFSI;
|
||||
}
|
||||
// <bdi> element already has its directionality set from content so
|
||||
// we never need to return kFSI.
|
||||
return StyleDirection::Rtl == vis->mDirection ? kRLI : kLRI;
|
||||
}
|
||||
if (text->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_PLAINTEXT) {
|
||||
return kFSI;
|
||||
case StyleUnicodeBidi::Normal:
|
||||
case StyleUnicodeBidi::BidiOverride:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -2474,8 +2475,8 @@ nsresult nsBidiPresUtils::ProcessTextForRenderingContext(
|
|||
/* static */
|
||||
BidiEmbeddingLevel nsBidiPresUtils::BidiLevelFromStyle(
|
||||
ComputedStyle* aComputedStyle) {
|
||||
if (aComputedStyle->StyleTextReset()->mUnicodeBidi &
|
||||
NS_STYLE_UNICODE_BIDI_PLAINTEXT) {
|
||||
if (aComputedStyle->StyleTextReset()->mUnicodeBidi ==
|
||||
StyleUnicodeBidi::Plaintext) {
|
||||
return BidiEmbeddingLevel::DefaultLTR();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2344,14 +2344,15 @@ void nsBlockFrame::MarkLineDirty(LineIterator aLine,
|
|||
*/
|
||||
static inline bool IsAlignedLeft(StyleTextAlign aAlignment,
|
||||
StyleDirection aDirection,
|
||||
uint8_t aUnicodeBidi, nsIFrame* aFrame) {
|
||||
StyleUnicodeBidi aUnicodeBidi,
|
||||
nsIFrame* aFrame) {
|
||||
return SVGUtils::IsInSVGTextSubtree(aFrame) ||
|
||||
StyleTextAlign::Left == aAlignment ||
|
||||
(((StyleTextAlign::Start == aAlignment &&
|
||||
StyleDirection::Ltr == aDirection) ||
|
||||
(StyleTextAlign::End == aAlignment &&
|
||||
StyleDirection::Rtl == aDirection)) &&
|
||||
!(NS_STYLE_UNICODE_BIDI_PLAINTEXT & aUnicodeBidi));
|
||||
aUnicodeBidi != StyleUnicodeBidi::Plaintext);
|
||||
}
|
||||
|
||||
void nsBlockFrame::PrepareResizeReflow(BlockReflowState& aState) {
|
||||
|
|
|
|||
|
|
@ -7350,8 +7350,8 @@ nsRect ScrollFrameHelper::GetScrolledRect() const {
|
|||
StyleDirection ScrollFrameHelper::GetScrolledFrameDir() const {
|
||||
// If the scrolled frame has unicode-bidi: plaintext, the paragraph
|
||||
// direction set by the text content overrides the direction of the frame
|
||||
if (mScrolledFrame->StyleTextReset()->mUnicodeBidi &
|
||||
NS_STYLE_UNICODE_BIDI_PLAINTEXT) {
|
||||
if (mScrolledFrame->StyleTextReset()->mUnicodeBidi ==
|
||||
StyleUnicodeBidi::Plaintext) {
|
||||
if (nsIFrame* child = mScrolledFrame->PrincipalChildList().FirstChild()) {
|
||||
return nsBidiPresUtils::ParagraphDirection(child) ==
|
||||
mozilla::intl::BidiDirection::LTR
|
||||
|
|
|
|||
|
|
@ -1718,7 +1718,7 @@ WritingMode nsIFrame::WritingModeForLine(WritingMode aSelfWM,
|
|||
MOZ_ASSERT(aSelfWM == GetWritingMode());
|
||||
WritingMode writingMode = aSelfWM;
|
||||
|
||||
if (StyleTextReset()->mUnicodeBidi & NS_STYLE_UNICODE_BIDI_PLAINTEXT) {
|
||||
if (StyleTextReset()->mUnicodeBidi == StyleUnicodeBidi::Plaintext) {
|
||||
mozilla::intl::BidiEmbeddingLevel frameLevel =
|
||||
nsBidiPresUtils::GetFrameBaseLevel(aSubFrame);
|
||||
writingMode.SetDirectionFromBidiLevel(frameLevel);
|
||||
|
|
|
|||
|
|
@ -2019,9 +2019,9 @@ bool BuildTextRunsScanner::ContinueTextRunAcrossFrames(nsTextFrame* aFrame1,
|
|||
}
|
||||
|
||||
// 3. The boundary is a bidi isolation boundary.
|
||||
const uint8_t unicodeBidi = ctx->StyleTextReset()->mUnicodeBidi;
|
||||
if (unicodeBidi == NS_STYLE_UNICODE_BIDI_ISOLATE ||
|
||||
unicodeBidi == NS_STYLE_UNICODE_BIDI_ISOLATE_OVERRIDE) {
|
||||
const auto unicodeBidi = ctx->StyleTextReset()->mUnicodeBidi;
|
||||
if (unicodeBidi == StyleUnicodeBidi::Isolate ||
|
||||
unicodeBidi == StyleUnicodeBidi::IsolateOverride) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -151,6 +151,7 @@ rusty-enums = [
|
|||
"mozilla::StyleTextOrientation",
|
||||
"mozilla::StyleMozBoxLayout",
|
||||
"mozilla::StyleTextCombineUpright",
|
||||
"mozilla::StyleUnicodeBidi",
|
||||
"mozilla::StyleTableLayout",
|
||||
"mozilla::StyleEmptyCells",
|
||||
"nsStyleImageType",
|
||||
|
|
|
|||
|
|
@ -541,12 +541,14 @@ enum class StyleTextCombineUpright : uint8_t {
|
|||
};
|
||||
|
||||
// See nsStyleText
|
||||
#define NS_STYLE_UNICODE_BIDI_NORMAL 0x0
|
||||
#define NS_STYLE_UNICODE_BIDI_EMBED 0x1
|
||||
#define NS_STYLE_UNICODE_BIDI_ISOLATE 0x2
|
||||
#define NS_STYLE_UNICODE_BIDI_BIDI_OVERRIDE 0x4
|
||||
#define NS_STYLE_UNICODE_BIDI_ISOLATE_OVERRIDE 0x6
|
||||
#define NS_STYLE_UNICODE_BIDI_PLAINTEXT 0x8
|
||||
enum class StyleUnicodeBidi : uint8_t {
|
||||
Normal,
|
||||
Embed,
|
||||
Isolate,
|
||||
BidiOverride,
|
||||
IsolateOverride,
|
||||
Plaintext
|
||||
};
|
||||
|
||||
enum class StyleTableLayout : uint8_t {
|
||||
Auto,
|
||||
|
|
|
|||
|
|
@ -2868,7 +2868,7 @@ nsStyleTextReset::nsStyleTextReset(const Document& aDocument)
|
|||
: mTextOverflow(),
|
||||
mTextDecorationLine(StyleTextDecorationLine::NONE),
|
||||
mTextDecorationStyle(NS_STYLE_TEXT_DECORATION_STYLE_SOLID),
|
||||
mUnicodeBidi(NS_STYLE_UNICODE_BIDI_NORMAL),
|
||||
mUnicodeBidi(StyleUnicodeBidi::Normal),
|
||||
mInitialLetterSink(0),
|
||||
mInitialLetterSize(0.0f),
|
||||
mTextDecorationColor(StyleColor::CurrentColor()),
|
||||
|
|
|
|||
|
|
@ -919,9 +919,9 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleTextReset {
|
|||
|
||||
mozilla::StyleTextDecorationLine mTextDecorationLine;
|
||||
uint8_t mTextDecorationStyle; // NS_STYLE_TEXT_DECORATION_STYLE_*
|
||||
uint8_t mUnicodeBidi; // NS_STYLE_UNICODE_BIDI_*
|
||||
nscoord mInitialLetterSink; // 0 means normal
|
||||
float mInitialLetterSize; // 0.0f means normal
|
||||
mozilla::StyleUnicodeBidi mUnicodeBidi;
|
||||
nscoord mInitialLetterSink; // 0 means normal
|
||||
float mInitialLetterSize; // 0.0f means normal
|
||||
mozilla::StyleColor mTextDecorationColor;
|
||||
mozilla::StyleTextDecorationLength mTextDecorationThickness;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ ${helpers.single_keyword(
|
|||
"unicode-bidi",
|
||||
"normal embed isolate bidi-override isolate-override plaintext",
|
||||
engines="gecko servo-2013",
|
||||
gecko_enum_prefix="StyleUnicodeBidi",
|
||||
animation_value_type="none",
|
||||
spec="https://drafts.csswg.org/css-writing-modes/#propdef-unicode-bidi",
|
||||
servo_restyle_damage="rebuild_and_reflow",
|
||||
|
|
|
|||
Loading…
Reference in a new issue