summaryrefslogtreecommitdiffstats
path: root/layout/generic/nsIFrame.h
diff options
context:
space:
mode:
Diffstat (limited to 'layout/generic/nsIFrame.h')
-rw-r--r--layout/generic/nsIFrame.h25
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;