diff options
Diffstat (limited to 'layout/generic/nsIFrame.h')
-rw-r--r-- | layout/generic/nsIFrame.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/layout/generic/nsIFrame.h b/layout/generic/nsIFrame.h index 90de72d8d..93eb95099 100644 --- a/layout/generic/nsIFrame.h +++ b/layout/generic/nsIFrame.h @@ -1435,14 +1435,21 @@ public: * BuildDisplayListForChild. * * See nsDisplayList.h for more information about display lists. + * + * @param aDirtyRect content outside this rectangle can be ignored; the + * rectangle is in frame coordinates */ virtual void BuildDisplayList(nsDisplayListBuilder* aBuilder, + const nsRect& aDirtyRect, const nsDisplayListSet& aLists) {} /** * Displays the caret onto the given display list builder. The caret is * painted on top of the rest of the display list items. + * + * @param aDirtyRect is the dirty rectangle that we're repainting. */ void DisplayCaret(nsDisplayListBuilder* aBuilder, + const nsRect& aDirtyRect, nsDisplayList* aList); /** @@ -1476,8 +1483,11 @@ public: /** * Builds a display list for the content represented by this frame, * treating this frame as the root of a stacking context. + * @param aDirtyRect content outside this rectangle can be ignored; the + * rectangle is in frame coordinates */ void BuildDisplayListForStackingContext(nsDisplayListBuilder* aBuilder, + const nsRect& aDirtyRect, nsDisplayList* aList); enum { @@ -1496,6 +1506,7 @@ public: */ void BuildDisplayListForChild(nsDisplayListBuilder* aBuilder, nsIFrame* aChild, + const nsRect& aDirtyRect, const nsDisplayListSet& aLists, uint32_t aFlags = 0); @@ -3519,23 +3530,13 @@ protected: nsRect mRect; nsIContent* mContent; nsStyleContext* mStyleContext; - /** - * This bit is used during BuildDisplayList to mark frames that need to - * have display items rebuilt. We will descend into them if they are - * currently visible, even if they don't intersect the dirty area. - */ - bool mForceDescendIntoIfVisible : 1; private: nsContainerFrame* mParent; nsIFrame* mNextSibling; // doubly-linked list of frames nsIFrame* mPrevSibling; // Do not touch outside SetNextSibling! - void MarkAbsoluteFramesForDisplayList(nsDisplayListBuilder* aBuilder); - public: - bool ForceDescendIntoIfVisible() const { return mForceDescendIntoIfVisible; } - void SetForceDescendIntoIfVisible(bool aForce) { - mForceDescendIntoIfVisible = aForce; - } + void MarkAbsoluteFramesForDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect); + static void DestroyPaintedPresShellList(nsTArray<nsWeakPtr>* list) { list->Clear(); delete list; |