summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderRegion.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-25 15:09:11 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-25 15:09:11 +0200
commita89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (patch)
treeb7abd9f49ae1d4d2e426a5883bfccd42b8e2ee12 /Source/WebCore/rendering/RenderRegion.h
parent8d473cf9743f1d30a16a27114e93bd5af5648d23 (diff)
downloadqtwebkit-a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd.tar.gz
Imported WebKit commit eb5c1b8fe4d4b1b90b5137433fc58a91da0e6878 (http://svn.webkit.org/repository/webkit/trunk@118516)
Diffstat (limited to 'Source/WebCore/rendering/RenderRegion.h')
-rw-r--r--Source/WebCore/rendering/RenderRegion.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/Source/WebCore/rendering/RenderRegion.h b/Source/WebCore/rendering/RenderRegion.h
index 1e10bb3ba..fb9afa467 100644
--- a/Source/WebCore/rendering/RenderRegion.h
+++ b/Source/WebCore/rendering/RenderRegion.h
@@ -82,7 +82,7 @@ public:
bool isFirstRegion() const;
bool isLastRegion() const;
- void clearBoxStyleInRegion(const RenderBox*);
+ void clearObjectStyleInRegion(const RenderObject*);
enum RegionState {
RegionUndefined,
@@ -98,11 +98,12 @@ public:
private:
virtual const char* renderName() const { return "RenderRegion"; }
- PassRefPtr<RenderStyle> renderBoxRegionStyle(const RenderBox*);
- PassRefPtr<RenderStyle> computeStyleInRegion(const RenderBox*);
- void setRegionBoxesRegionStyle();
- void restoreRegionBoxesOriginalStyle();
-
+ PassRefPtr<RenderStyle> computeStyleInRegion(const RenderObject*);
+ void computeChildrenStyleInRegion(const RenderObject*);
+ void setRegionObjectsRegionStyle();
+ void restoreRegionObjectsOriginalStyle();
+ void setObjectStyleInRegion(RenderObject*, PassRefPtr<RenderStyle>, bool objectRegionStyleCached);
+ void printRegionObjectsStyles();
RenderFlowThread* m_flowThread;
// If this RenderRegion is displayed as part of another named flow,
@@ -118,8 +119,18 @@ private:
typedef HashMap<const RenderBox*, OwnPtr<RenderBoxRegionInfo> > RenderBoxRegionInfoMap;
RenderBoxRegionInfoMap m_renderBoxRegionInfo;
- typedef HashMap<const RenderBox*, RefPtr<RenderStyle> > RenderBoxRegionStyleMap;
- RenderBoxRegionStyleMap m_renderBoxRegionStyle;
+ struct ObjectRegionStyleInfo {
+ // Used to store the original style of the object in region
+ // so that the original style is properly restored after paint.
+ // Also used to store computed style of the object in region between
+ // region paintings, so that the style in region is computed only
+ // when necessary.
+ RefPtr<RenderStyle> style;
+ // True if the computed style in region is cached.
+ bool cached;
+ };
+ typedef HashMap<const RenderObject*, ObjectRegionStyleInfo > RenderObjectRegionStyleMap;
+ RenderObjectRegionStyleMap m_renderObjectRegionStyle;
bool m_isValid;
bool m_hasCustomRegionStyle;