Chromium Code Reviews| Index: Source/core/editing/EditingStyle.cpp |
| diff --git a/Source/core/editing/EditingStyle.cpp b/Source/core/editing/EditingStyle.cpp |
| index 41ce59d22ea33931048d8e7e57ce9137aca1113a..674e9071bbff59844c78fe109caebe139ece9088 100644 |
| --- a/Source/core/editing/EditingStyle.cpp |
| +++ b/Source/core/editing/EditingStyle.cpp |
| @@ -34,11 +34,13 @@ |
| #include "core/css/CSSRuleList.h" |
| #include "core/css/CSSStyleRule.h" |
| #include "core/css/CSSValueList.h" |
| +#include "core/css/CSSValuePool.h" |
| #include "core/css/FontSize.h" |
| #include "core/css/RuntimeCSSEnabled.h" |
| #include "core/css/StylePropertySet.h" |
| #include "core/css/StyleRule.h" |
| #include "core/css/resolver/StyleResolver.h" |
| +#include "core/dom/ClientRect.h" |
| #include "core/dom/Element.h" |
| #include "core/dom/Node.h" |
| #include "core/dom/NodeTraversal.h" |
| @@ -1232,6 +1234,17 @@ void EditingStyle::removePropertiesInElementDefaultStyle(Element* element) |
| removePropertiesInStyle(m_mutableStyle.get(), defaultStyle.get()); |
| } |
| +void EditingStyle::addAbsolutePositioningFromElement(Element* element) |
| +{ |
| + RefPtr<ClientRect> rect = element->getBoundingClientRect(); |
| + |
| + m_mutableStyle->setProperty(CSSPropertyPosition, CSSValueAbsolute); |
| + m_mutableStyle->setProperty(CSSPropertyWidth, cssValuePool().createValue(rect->right() - rect->left(), CSSPrimitiveValue::CSS_PX)); |
| + m_mutableStyle->setProperty(CSSPropertyHeight, cssValuePool().createValue(rect->bottom() - rect->top(), CSSPrimitiveValue::CSS_PX)); |
|
esprehn
2014/05/29 21:32:10
What about padding/margins? This approach doesn't
|
| + m_mutableStyle->setProperty(CSSPropertyLeft, cssValuePool().createValue(rect->left(), CSSPrimitiveValue::CSS_PX)); |
| + m_mutableStyle->setProperty(CSSPropertyTop, cssValuePool().createValue(rect->top(), CSSPrimitiveValue::CSS_PX)); |
| +} |
| + |
| void EditingStyle::forceInline() |
| { |
| if (!m_mutableStyle) |