Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Unified Diff: Source/core/rendering/RenderListMarker.cpp

Issue 778003003: List marker pseudo elements. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderListMarker.cpp
diff --git a/Source/core/rendering/RenderListMarker.cpp b/Source/core/rendering/RenderListMarker.cpp
index 3c91c6f2bc13a07bca5c89e4eec5c11f99cc00e6..ccd2764ea0db1658ac996d89f35c7b5df84032f6 100644
--- a/Source/core/rendering/RenderListMarker.cpp
+++ b/Source/core/rendering/RenderListMarker.cpp
@@ -25,6 +25,7 @@
#include "config.h"
#include "core/rendering/RenderListMarker.h"
+#include "core/dom/MarkerPseudoElement.h"
#include "core/fetch/ImageResource.h"
#include "core/paint/ListMarkerPainter.h"
#include "core/rendering/RenderLayer.h"
@@ -1047,6 +1048,15 @@ String listMarkerText(EListStyleType type, int value)
return "";
}
+RenderListMarker::RenderListMarker(Element* node, RenderListItem* item)
+ : RenderBox(node)
+ , m_listItem(item)
+{
+ // init RenderObject attributes
+ setInline(true); // our object is Inline
+ setReplaced(true); // pretend to be replaced
+}
+
RenderListMarker::RenderListMarker(RenderListItem* item)
: RenderBox(0)
, m_listItem(item)
@@ -1638,16 +1648,7 @@ LayoutRect RenderListMarker::selectionRectForPaintInvalidation(const RenderLayer
void RenderListMarker::listItemStyleDidChange()
{
- RefPtr<RenderStyle> newStyle = RenderStyle::create();
- // The marker always inherits from the list item, regardless of where it might end
- // up (e.g., in some deeply nested line box). See CSS3 spec.
- newStyle->inheritFrom(m_listItem->style());
- if (style()) {
- // Reuse the current margins. Otherwise resetting the margins to initial values
- // would trigger unnecessary layout.
- newStyle->setMarginStart(style()->marginStart());
- newStyle->setMarginEnd(style()->marginRight());
- }
+ RefPtr<RenderStyle> newStyle = MarkerPseudoElement::styleForListMarkerRenderer(*m_listItem, style());
Julien - ping for review 2015/02/04 01:56:34 styleRef() (and more generally let's use const Ren
dsinclair 2015/02/04 15:30:59 Making this a const RenderStyle& is a much larger
setStyle(newStyle.release());
}

Powered by Google App Engine
This is Rietveld 408576698