summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering/RenderSummary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderSummary.cpp')
-rw-r--r--Source/WebCore/rendering/RenderSummary.cpp36
1 files changed, 33 insertions, 3 deletions
diff --git a/Source/WebCore/rendering/RenderSummary.cpp b/Source/WebCore/rendering/RenderSummary.cpp
index 8fccf66..cfde231 100644
--- a/Source/WebCore/rendering/RenderSummary.cpp
+++ b/Source/WebCore/rendering/RenderSummary.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
+ * Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -21,11 +21,41 @@
#include "config.h"
#include "RenderSummary.h"
+#include "RenderDetails.h"
+
namespace WebCore {
-RenderSummary::RenderSummary(Node* element)
- : RenderBlock(element)
+RenderSummary::RenderSummary(Node* node)
+ : RenderBlock(node)
+{
+}
+
+void RenderSummary::destroy()
+{
+ RenderDetails* details = parentDetails();
+ if (details)
+ details->summaryDestroyed(this);
+
+ RenderBlock::destroy();
+}
+
+RenderDetails* RenderSummary::parentDetails()
{
+ RenderObject* obj = parent();
+ while (obj && !obj->isDetails())
+ obj = obj->parent();
+
+ return static_cast<RenderDetails*>(obj);
+}
+
+void RenderSummary::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle)
+{
+ RenderBlock::styleDidChange(diff, oldStyle);
+
+
+ // Ensure that if we ended up being inline that we set our replaced flag
+ // so that we're treated like an inline-block.
+ setReplaced(isInline());
}
}