зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 534a0efe7d3d (bug 789096)
This commit is contained in:
Родитель
fb3e4c0034
Коммит
ea10325852
|
@ -1385,20 +1385,24 @@ nsBidiPresUtils::RepositionFrame(nsIFrame* aFrame,
|
|||
WritingMode frameWM = aFrame->GetWritingMode();
|
||||
nsInlineFrame* testFrame = do_QueryFrame(aFrame);
|
||||
|
||||
//XXX temporary until GetSkipSides is logicalized
|
||||
bool isLeftMost = false, isRightMost = false;
|
||||
if (testFrame) {
|
||||
aFrame->AddStateBits(NS_INLINE_FRAME_BIDI_VISUAL_STATE_IS_SET);
|
||||
|
||||
if (isFirst) {
|
||||
aFrame->AddStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_FIRST);
|
||||
} else {
|
||||
aFrame->RemoveStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_FIRST);
|
||||
}
|
||||
isLeftMost = ((isFirst && frameWM.IsBidiLTR()) ||
|
||||
(isLast && !frameWM.IsBidiLTR()));
|
||||
if (isLeftMost)
|
||||
aFrame->AddStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_LEFT_MOST);
|
||||
else
|
||||
aFrame->RemoveStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_LEFT_MOST);
|
||||
|
||||
if (isLast) {
|
||||
aFrame->AddStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_LAST);
|
||||
} else {
|
||||
aFrame->RemoveStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_LAST);
|
||||
}
|
||||
isRightMost = ((isLast && frameWM.IsBidiLTR()) ||
|
||||
(isFirst && !frameWM.IsBidiLTR()));
|
||||
if (isRightMost)
|
||||
aFrame->AddStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_RIGHT_MOST);
|
||||
else
|
||||
aFrame->RemoveStateBits(NS_INLINE_FRAME_BIDI_VISUAL_IS_RIGHT_MOST);
|
||||
}
|
||||
// This method is called from nsBlockFrame::PlaceLine via the call to
|
||||
// bidiUtils->ReorderFrames, so this is guaranteed to be after the inlines
|
||||
|
|
|
@ -968,21 +968,19 @@ nsBlockFrame::Reflow(nsPresContext* aPresContext,
|
|||
if (aReflowState.AvailableHeight() != NS_UNCONSTRAINEDSIZE &&
|
||||
aReflowState.ComputedHeight() != NS_AUTOHEIGHT &&
|
||||
ShouldApplyOverflowClipping(this, aReflowState.mStyleDisplay)) {
|
||||
LogicalMargin blockDirExtras = aReflowState.ComputedLogicalBorderPadding();
|
||||
WritingMode wm = aReflowState.GetWritingMode();
|
||||
if (GetLogicalSkipSides() & (LOGICAL_SIDE_B_START)) {
|
||||
blockDirExtras.BStart(wm) = 0;
|
||||
nsMargin heightExtras = aReflowState.ComputedPhysicalBorderPadding();
|
||||
if (GetSkipSides() & (1 << NS_SIDE_TOP)) {
|
||||
heightExtras.top = 0;
|
||||
} else {
|
||||
// Bottom margin never causes us to create continuations, so we
|
||||
// don't need to worry about whether it fits in its entirety.
|
||||
blockDirExtras.BStart(wm) +=
|
||||
aReflowState.ComputedLogicalMargin().BStart(wm);
|
||||
heightExtras.top += aReflowState.ComputedPhysicalMargin().top;
|
||||
}
|
||||
|
||||
if (effectiveComputedHeight + blockDirExtras.BStartEnd(wm) <=
|
||||
aReflowState.AvailableBSize()) {
|
||||
if (effectiveComputedHeight + heightExtras.TopBottom() <=
|
||||
aReflowState.AvailableHeight()) {
|
||||
mutableReflowState.construct(aReflowState);
|
||||
mutableReflowState.ref().AvailableBSize() = NS_UNCONSTRAINEDSIZE;
|
||||
mutableReflowState.ref().AvailableHeight() = NS_UNCONSTRAINEDSIZE;
|
||||
reflowState = mutableReflowState.addr();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -380,7 +380,7 @@ nsFirstLetterFrame::GetBaseline() const
|
|||
}
|
||||
|
||||
int
|
||||
nsFirstLetterFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsFirstLetterFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
if (GetPrevContinuation()) {
|
||||
// We shouldn't get calls to GetSkipSides for later continuations since
|
||||
|
@ -388,7 +388,10 @@ nsFirstLetterFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) c
|
|||
// properties that could trigger a call to GetSkipSides. Then again,
|
||||
// it's not really an error to call GetSkipSides on any frame, so
|
||||
// that's why we handle it properly.
|
||||
return LOGICAL_SIDES_ALL;
|
||||
return 1 << NS_SIDE_LEFT |
|
||||
1 << NS_SIDE_RIGHT |
|
||||
1 << NS_SIDE_TOP |
|
||||
1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
return 0; // first continuation displays all sides
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ public:
|
|||
|
||||
virtual bool CanContinueTextRun() const MOZ_OVERRIDE;
|
||||
virtual nscoord GetBaseline() const MOZ_OVERRIDE;
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
//override of nsFrame method
|
||||
virtual nsresult GetChildFrameContainingOffset(int32_t inContentOffset,
|
||||
|
|
|
@ -944,87 +944,19 @@ nsIFrame::GetUsedPadding() const
|
|||
return padding;
|
||||
}
|
||||
|
||||
int
|
||||
nsIFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
// Convert the logical skip sides to physical sides using the frame's
|
||||
// writing mode
|
||||
WritingMode writingMode = GetWritingMode();
|
||||
int logicalSkip = GetLogicalSkipSides(aReflowState);
|
||||
int skip = 0;
|
||||
|
||||
if (logicalSkip & LOGICAL_SIDE_B_START) {
|
||||
if (writingMode.IsVertical()) {
|
||||
skip |= 1 << (writingMode.IsVerticalLR() ? NS_SIDE_LEFT : NS_SIDE_RIGHT);
|
||||
} else {
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
}
|
||||
|
||||
if (logicalSkip & LOGICAL_SIDE_B_END) {
|
||||
if (writingMode.IsVertical()) {
|
||||
skip |= 1 << (writingMode.IsVerticalLR() ? NS_SIDE_RIGHT : NS_SIDE_LEFT);
|
||||
} else {
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
}
|
||||
|
||||
if (logicalSkip & LOGICAL_SIDE_I_START) {
|
||||
if (writingMode.IsVertical()) {
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
} else {
|
||||
skip |= 1 << (writingMode.IsBidiLTR() ? NS_SIDE_LEFT : NS_SIDE_RIGHT);
|
||||
}
|
||||
}
|
||||
|
||||
if (logicalSkip & LOGICAL_SIDE_I_END) {
|
||||
if (writingMode.IsVertical()) {
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
} else {
|
||||
skip |= 1 << (writingMode.IsBidiLTR() ? NS_SIDE_RIGHT : NS_SIDE_LEFT);
|
||||
}
|
||||
}
|
||||
|
||||
return skip;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
nsIFrame::ApplySkipSides(nsMargin& aMargin,
|
||||
const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skipSides = GetSkipSides(aReflowState);
|
||||
if (skipSides & (1 << NS_SIDE_TOP)) {
|
||||
if (skipSides & (1 << NS_SIDE_TOP))
|
||||
aMargin.top = 0;
|
||||
}
|
||||
if (skipSides & (1 << NS_SIDE_RIGHT)) {
|
||||
if (skipSides & (1 << NS_SIDE_RIGHT))
|
||||
aMargin.right = 0;
|
||||
}
|
||||
if (skipSides & (1 << NS_SIDE_BOTTOM)) {
|
||||
if (skipSides & (1 << NS_SIDE_BOTTOM))
|
||||
aMargin.bottom = 0;
|
||||
}
|
||||
if (skipSides & (1 << NS_SIDE_LEFT)) {
|
||||
if (skipSides & (1 << NS_SIDE_LEFT))
|
||||
aMargin.left = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
nsIFrame::ApplyLogicalSkipSides(LogicalMargin& aMargin,
|
||||
const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skipSides = GetLogicalSkipSides(aReflowState);
|
||||
if (skipSides & (LOGICAL_SIDE_B_START)) {
|
||||
aMargin.BStart(GetWritingMode()) = 0;
|
||||
}
|
||||
if (skipSides & (LOGICAL_SIDE_I_END)) {
|
||||
aMargin.IEnd(GetWritingMode()) = 0;
|
||||
}
|
||||
if (skipSides & (LOGICAL_SIDE_B_END)) {
|
||||
aMargin.BEnd(GetWritingMode()) = 0;
|
||||
}
|
||||
if (skipSides & (LOGICAL_SIDE_I_START)) {
|
||||
aMargin.IStart(GetWritingMode()) = 0;
|
||||
}
|
||||
}
|
||||
|
||||
nsRect
|
||||
|
|
|
@ -507,15 +507,15 @@ FRAME_STATE_BIT(Image, 21, IMAGE_GOTINITIALREFLOW)
|
|||
|
||||
FRAME_STATE_GROUP(Inline, nsInlineFrame)
|
||||
|
||||
/** In Bidi inline start (or end) margin/padding/border should be applied to
|
||||
* first (or last) frame (or a continuation frame).
|
||||
* This state value shows if this frame is first (or last) continuation
|
||||
/** In Bidi left (or right) margin/padding/border should be applied to left
|
||||
* (or right) most frame (or a continuation frame).
|
||||
* This state value shows if this frame is left (or right) most continuation
|
||||
* or not.
|
||||
*/
|
||||
|
||||
FRAME_STATE_BIT(Inline, 21, NS_INLINE_FRAME_BIDI_VISUAL_STATE_IS_SET)
|
||||
FRAME_STATE_BIT(Inline, 22, NS_INLINE_FRAME_BIDI_VISUAL_IS_FIRST)
|
||||
FRAME_STATE_BIT(Inline, 23, NS_INLINE_FRAME_BIDI_VISUAL_IS_LAST)
|
||||
FRAME_STATE_BIT(Inline, 22, NS_INLINE_FRAME_BIDI_VISUAL_IS_LEFT_MOST)
|
||||
FRAME_STATE_BIT(Inline, 23, NS_INLINE_FRAME_BIDI_VISUAL_IS_RIGHT_MOST)
|
||||
|
||||
|
||||
// == Frame state bits that apply to placeholder frames =======================
|
||||
|
|
|
@ -934,8 +934,6 @@ public:
|
|||
*/
|
||||
void ApplySkipSides(nsMargin& aMargin,
|
||||
const nsHTMLReflowState* aReflowState = nullptr) const;
|
||||
void ApplyLogicalSkipSides(mozilla::LogicalMargin& aMargin,
|
||||
const nsHTMLReflowState* aReflowState = nullptr) const;
|
||||
|
||||
/**
|
||||
* Like the frame's rect (see |GetRect|), which is the border rect,
|
||||
|
@ -2374,19 +2372,7 @@ public:
|
|||
* passed in, indicating that it should be used to determine if sides
|
||||
* should be skipped during reflow.
|
||||
*/
|
||||
#define LOGICAL_SIDE_B_START 1
|
||||
#define LOGICAL_SIDE_I_START 2
|
||||
#define LOGICAL_SIDE_B_END 4
|
||||
#define LOGICAL_SIDE_I_END 8
|
||||
#define LOGICAL_SIDES_I_BOTH (LOGICAL_SIDE_I_START | LOGICAL_SIDE_I_END)
|
||||
#define LOGICAL_SIDES_B_BOTH (LOGICAL_SIDE_B_START | LOGICAL_SIDE_B_END)
|
||||
#define LOGICAL_SIDES_ALL (LOGICAL_SIDE_I_START | LOGICAL_SIDE_I_END | \
|
||||
LOGICAL_SIDE_B_START | LOGICAL_SIDE_B_END)
|
||||
int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const;
|
||||
virtual int
|
||||
GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const {
|
||||
return 0;
|
||||
}
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const { return 0; }
|
||||
|
||||
/**
|
||||
* @returns true if this frame is selected.
|
||||
|
|
|
@ -1780,14 +1780,14 @@ nsImageFrame::List(FILE* out, const char* aPrefix, uint32_t aFlags) const
|
|||
#endif
|
||||
|
||||
int
|
||||
nsImageFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsImageFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skip = 0;
|
||||
if (nullptr != GetPrevInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_START;
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
if (nullptr != GetNextInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ public:
|
|||
uint32_t aFlags = 0) const MOZ_OVERRIDE;
|
||||
#endif
|
||||
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
nsresult GetIntrinsicImageSize(nsSize& aSize);
|
||||
|
||||
|
|
|
@ -866,32 +866,32 @@ nsInlineFrame::PushFrames(nsPresContext* aPresContext,
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
int
|
||||
nsInlineFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsInlineFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skip = 0;
|
||||
if (!IsFirst()) {
|
||||
if (!IsLeftMost()) {
|
||||
nsInlineFrame* prev = (nsInlineFrame*) GetPrevContinuation();
|
||||
if ((GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_STATE_IS_SET) ||
|
||||
(prev && (prev->mRect.height || prev->mRect.width))) {
|
||||
// Prev continuation is not empty therefore we don't render our start
|
||||
// Prev continuation is not empty therefore we don't render our left
|
||||
// border edge.
|
||||
skip |= LOGICAL_SIDE_I_START;
|
||||
skip |= 1 << NS_SIDE_LEFT;
|
||||
}
|
||||
else {
|
||||
// If the prev continuation is empty, then go ahead and let our start
|
||||
// If the prev continuation is empty, then go ahead and let our left
|
||||
// edge border render.
|
||||
}
|
||||
}
|
||||
if (!IsLast()) {
|
||||
if (!IsRightMost()) {
|
||||
nsInlineFrame* next = (nsInlineFrame*) GetNextContinuation();
|
||||
if ((GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_STATE_IS_SET) ||
|
||||
(next && (next->mRect.height || next->mRect.width))) {
|
||||
// Next continuation is not empty therefore we don't render our end
|
||||
// Next continuation is not empty therefore we don't render our right
|
||||
// border edge.
|
||||
skip |= LOGICAL_SIDE_I_END;
|
||||
skip |= 1 << NS_SIDE_RIGHT;
|
||||
}
|
||||
else {
|
||||
// If the next continuation is empty, then go ahead and let our end
|
||||
// If the next continuation is empty, then go ahead and let our right
|
||||
// edge border render.
|
||||
}
|
||||
}
|
||||
|
@ -902,15 +902,18 @@ nsInlineFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
|||
// a split should skip the "start" side. But figuring out which part of
|
||||
// the split we are involves getting our first continuation, which might be
|
||||
// expensive. So don't bother if we already have the relevant bits set.
|
||||
if (skip != LOGICAL_SIDES_I_BOTH) {
|
||||
bool ltr = (NS_STYLE_DIRECTION_LTR == StyleVisibility()->mDirection);
|
||||
int startBit = (1 << (ltr ? NS_SIDE_LEFT : NS_SIDE_RIGHT));
|
||||
int endBit = (1 << (ltr ? NS_SIDE_RIGHT : NS_SIDE_LEFT));
|
||||
if (((startBit | endBit) & skip) != (startBit | endBit)) {
|
||||
// We're missing one of the skip bits, so check whether we need to set it.
|
||||
// Only get the first continuation once, as an optimization.
|
||||
nsIFrame* firstContinuation = FirstContinuation();
|
||||
if (firstContinuation->FrameIsNonLastInIBSplit()) {
|
||||
skip |= LOGICAL_SIDE_I_END;
|
||||
skip |= endBit;
|
||||
}
|
||||
if (firstContinuation->FrameIsNonFirstInIBSplit()) {
|
||||
skip |= LOGICAL_SIDE_I_START;
|
||||
skip |= startBit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -84,24 +84,24 @@ public:
|
|||
virtual bool DrainSelfOverflowList() MOZ_OVERRIDE;
|
||||
|
||||
/**
|
||||
* Return true if the frame is first visual frame or first continuation
|
||||
* Return true if the frame is leftmost frame or continuation.
|
||||
*/
|
||||
bool IsFirst() const {
|
||||
// If the frame's bidi visual state is set, return is-first state
|
||||
bool IsLeftMost() const {
|
||||
// If the frame's bidi visual state is set, return is-leftmost state
|
||||
// else return true if it's the first continuation.
|
||||
return (GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_STATE_IS_SET)
|
||||
? !!(GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_IS_FIRST)
|
||||
? !!(GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_IS_LEFT_MOST)
|
||||
: (!GetPrevInFlow());
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if the frame is last visual frame or last continuation.
|
||||
* Return true if the frame is rightmost frame or continuation.
|
||||
*/
|
||||
bool IsLast() const {
|
||||
// If the frame's bidi visual state is set, return is-last state
|
||||
bool IsRightMost() const {
|
||||
// If the frame's bidi visual state is set, return is-rightmost state
|
||||
// else return true if it's the last continuation.
|
||||
return (GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_STATE_IS_SET)
|
||||
? !!(GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_IS_LAST)
|
||||
? !!(GetStateBits() & NS_INLINE_FRAME_BIDI_VISUAL_IS_RIGHT_MOST)
|
||||
: (!GetNextInFlow());
|
||||
}
|
||||
|
||||
|
@ -126,7 +126,7 @@ protected:
|
|||
|
||||
nsInlineFrame(nsStyleContext* aContext) : nsContainerFrame(aContext) {}
|
||||
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
nsresult ReflowFrames(nsPresContext* aPresContext,
|
||||
const nsHTMLReflowState& aReflowState,
|
||||
|
|
|
@ -247,16 +247,16 @@ nsSplittableFrame::GetEffectiveComputedHeight(const nsHTMLReflowState& aReflowSt
|
|||
}
|
||||
|
||||
int
|
||||
nsSplittableFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsSplittableFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
if (IS_TRUE_OVERFLOW_CONTAINER(this)) {
|
||||
return LOGICAL_SIDES_B_BOTH;
|
||||
return (1 << NS_SIDE_TOP) | (1 << NS_SIDE_BOTTOM);
|
||||
}
|
||||
|
||||
int skip = 0;
|
||||
|
||||
if (GetPrevInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_START;
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
|
||||
if (aReflowState) {
|
||||
|
@ -270,13 +270,13 @@ nsSplittableFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) co
|
|||
if (effectiveCH > aReflowState->AvailableHeight()) {
|
||||
// Our content height is going to exceed our available height, so we're
|
||||
// going to need a next-in-flow.
|
||||
skip |= LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
nsIFrame* nif = GetNextInFlow();
|
||||
if (nif && !IS_TRUE_OVERFLOW_CONTAINER(nif)) {
|
||||
skip |= LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -93,10 +93,10 @@ protected:
|
|||
nscoord aConsumed = NS_INTRINSICSIZE) const;
|
||||
|
||||
/**
|
||||
* @see nsIFrame::GetLogicalSkipSides()
|
||||
* @see nsIFrame::ApplyLogicalSkipSides()
|
||||
* @see nsIFrame::GetSkipSides()
|
||||
* @see nsIFrame::ApplySkipSides()
|
||||
*/
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
#ifdef DEBUG
|
||||
virtual void DumpBaseRegressionData(nsPresContext* aPresContext, FILE* out, int32_t aIndent) MOZ_OVERRIDE;
|
||||
|
|
|
@ -548,14 +548,14 @@ nsTableCellFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||
}
|
||||
|
||||
int
|
||||
nsTableCellFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsTableCellFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skip = 0;
|
||||
if (nullptr != GetPrevInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_START;
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
if (nullptr != GetNextInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
|
|
|
@ -221,7 +221,7 @@ public:
|
|||
virtual void InvalidateFrameForRemoval() MOZ_OVERRIDE { InvalidateFrameSubtree(); }
|
||||
|
||||
protected:
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState= nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState= nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
/**
|
||||
* GetBorderOverflow says how far the cell's own borders extend
|
||||
|
|
|
@ -341,14 +341,14 @@ nsTableColGroupFrame::RemoveFrame(ChildListID aListID,
|
|||
}
|
||||
|
||||
int
|
||||
nsTableColGroupFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsTableColGroupFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skip = 0;
|
||||
if (nullptr != GetPrevInFlow()) {
|
||||
skip |= 1 << LOGICAL_SIDE_B_START;
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
if (nullptr != GetNextInFlow()) {
|
||||
skip |= 1 << LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
|
|
|
@ -212,7 +212,7 @@ protected:
|
|||
void InsertColsReflow(int32_t aColIndex,
|
||||
const nsFrameList::Slice& aCols);
|
||||
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
// data members
|
||||
int32_t mColCount;
|
||||
|
|
|
@ -1407,16 +1407,16 @@ nsTableFrame::PaintTableBorderBackground(nsRenderingContext& aRenderingContext,
|
|||
}
|
||||
|
||||
int
|
||||
nsTableFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsTableFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skip = 0;
|
||||
// frame attribute was accounted for in nsHTMLTableElement::MapTableBorderInto
|
||||
// account for pagination
|
||||
if (nullptr != GetPrevInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_START;
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
if (nullptr != GetNextInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
|
|
|
@ -527,7 +527,7 @@ protected:
|
|||
|
||||
void InitChildReflowState(nsHTMLReflowState& aReflowState);
|
||||
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
public:
|
||||
bool IsRowInserted() const;
|
||||
|
|
|
@ -603,14 +603,14 @@ nsTableRowFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||
}
|
||||
|
||||
int
|
||||
nsTableRowFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsTableRowFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skip = 0;
|
||||
if (nullptr != GetPrevInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_START;
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
if (nullptr != GetNextInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
|
|
|
@ -243,7 +243,7 @@ protected:
|
|||
bool aBorderCollapse,
|
||||
nsTableCellReflowState& aReflowState);
|
||||
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
// row-specific methods
|
||||
|
||||
|
|
|
@ -254,14 +254,14 @@ nsTableRowGroupFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||
}
|
||||
|
||||
int
|
||||
nsTableRowGroupFrame::GetLogicalSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
nsTableRowGroupFrame::GetSkipSides(const nsHTMLReflowState* aReflowState) const
|
||||
{
|
||||
int skip = 0;
|
||||
if (nullptr != GetPrevInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_START;
|
||||
skip |= 1 << NS_SIDE_TOP;
|
||||
}
|
||||
if (nullptr != GetNextInFlow()) {
|
||||
skip |= LOGICAL_SIDE_B_END;
|
||||
skip |= 1 << NS_SIDE_BOTTOM;
|
||||
}
|
||||
return skip;
|
||||
}
|
||||
|
|
|
@ -337,7 +337,7 @@ protected:
|
|||
bool aBorderCollapse,
|
||||
nsHTMLReflowState& aReflowState);
|
||||
|
||||
virtual int GetLogicalSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
virtual int GetSkipSides(const nsHTMLReflowState* aReflowState = nullptr) const MOZ_OVERRIDE;
|
||||
|
||||
void PlaceChild(nsPresContext* aPresContext,
|
||||
nsRowGroupReflowState& aReflowState,
|
||||
|
|
Загрузка…
Ссылка в новой задаче