Bumping manifests a=b2g-bump
[gecko.git] / layout / base / nsDisplayListInvalidation.cpp
blob175049249ee3a5695184a789b033c5e6ddbd5223
1 /*-*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "nsDisplayListInvalidation.h"
7 #include "nsDisplayList.h"
8 #include "nsIFrame.h"
10 nsDisplayItemGeometry::nsDisplayItemGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
12 MOZ_COUNT_CTOR(nsDisplayItemGeometry);
13 bool snap;
14 mBounds = aItem->GetBounds(aBuilder, &snap);
17 nsDisplayItemGeometry::~nsDisplayItemGeometry()
19 MOZ_COUNT_DTOR(nsDisplayItemGeometry);
22 nsDisplayItemGenericGeometry::nsDisplayItemGenericGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
23 : nsDisplayItemGeometry(aItem, aBuilder)
24 , mBorderRect(aItem->GetBorderRect())
27 void
28 nsDisplayItemGenericGeometry::MoveBy(const nsPoint& aOffset)
30 nsDisplayItemGeometry::MoveBy(aOffset);
31 mBorderRect.MoveBy(aOffset);
34 nsDisplayItemBoundsGeometry::nsDisplayItemBoundsGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
35 : nsDisplayItemGeometry(aItem, aBuilder)
37 nscoord radii[8];
38 mHasRoundedCorners = aItem->Frame()->GetBorderRadii(radii);
41 nsDisplayBorderGeometry::nsDisplayBorderGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
42 : nsDisplayItemGeometry(aItem, aBuilder)
43 , mContentRect(aItem->GetContentRect())
46 void
47 nsDisplayBorderGeometry::MoveBy(const nsPoint& aOffset)
49 nsDisplayItemGeometry::MoveBy(aOffset);
50 mContentRect.MoveBy(aOffset);
53 nsDisplayBackgroundGeometry::nsDisplayBackgroundGeometry(nsDisplayBackgroundImage* aItem,
54 nsDisplayListBuilder* aBuilder)
55 : nsDisplayItemGeometry(aItem, aBuilder)
56 , mPositioningArea(aItem->GetPositioningArea())
59 void
60 nsDisplayBackgroundGeometry::MoveBy(const nsPoint& aOffset)
62 nsDisplayItemGeometry::MoveBy(aOffset);
63 mPositioningArea.MoveBy(aOffset);
66 nsDisplayThemedBackgroundGeometry::nsDisplayThemedBackgroundGeometry(nsDisplayThemedBackground* aItem,
67 nsDisplayListBuilder* aBuilder)
68 : nsDisplayItemGeometry(aItem, aBuilder)
69 , mPositioningArea(aItem->GetPositioningArea())
70 , mWindowIsActive(aItem->IsWindowActive())
73 void
74 nsDisplayThemedBackgroundGeometry::MoveBy(const nsPoint& aOffset)
76 nsDisplayItemGeometry::MoveBy(aOffset);
77 mPositioningArea.MoveBy(aOffset);
80 nsDisplayBoxShadowInnerGeometry::nsDisplayBoxShadowInnerGeometry(nsDisplayItem* aItem, nsDisplayListBuilder* aBuilder)
81 : nsDisplayItemGeometry(aItem, aBuilder)
82 , mPaddingRect(aItem->GetPaddingRect())
85 void
86 nsDisplayBoxShadowInnerGeometry::MoveBy(const nsPoint& aOffset)
88 nsDisplayItemGeometry::MoveBy(aOffset);
89 mPaddingRect.MoveBy(aOffset);
92 nsDisplayBoxShadowOuterGeometry::nsDisplayBoxShadowOuterGeometry(nsDisplayItem* aItem,
93 nsDisplayListBuilder* aBuilder, float aOpacity)
94 : nsDisplayItemGenericGeometry(aItem, aBuilder)
95 , mOpacity(aOpacity)
98 nsDisplaySVGEffectsGeometry::nsDisplaySVGEffectsGeometry(nsDisplaySVGEffects* aItem, nsDisplayListBuilder* aBuilder)
99 : nsDisplayItemGeometry(aItem, aBuilder)
100 , mBBox(aItem->BBoxInUserSpace())
101 , mUserSpaceOffset(aItem->UserSpaceOffset())
102 , mFrameOffsetToReferenceFrame(aItem->ToReferenceFrame())
105 void
106 nsDisplaySVGEffectsGeometry::MoveBy(const nsPoint& aOffset)
108 mBounds.MoveBy(aOffset);
109 mFrameOffsetToReferenceFrame += aOffset;