diff options
Diffstat (limited to 'WebCore/rendering/RenderTextControlMultiLine.cpp')
-rw-r--r-- | WebCore/rendering/RenderTextControlMultiLine.cpp | 49 |
1 files changed, 26 insertions, 23 deletions
diff --git a/WebCore/rendering/RenderTextControlMultiLine.cpp b/WebCore/rendering/RenderTextControlMultiLine.cpp index 2c93164..eaa7eca 100644 --- a/WebCore/rendering/RenderTextControlMultiLine.cpp +++ b/WebCore/rendering/RenderTextControlMultiLine.cpp @@ -55,8 +55,6 @@ void RenderTextControlMultiLine::subtreeHasChanged() if (!node()->focused()) return; - node()->dispatchEvent(Event::create(eventNames().inputEvent, true, false)); - if (Frame* frame = this->frame()) frame->editor()->textDidChangeInTextArea(textArea); } @@ -66,10 +64,7 @@ bool RenderTextControlMultiLine::nodeAtPoint(const HitTestRequest& request, HitT if (!RenderTextControl::nodeAtPoint(request, result, x, y, tx, ty, hitTestAction)) return false; - bool resultIsTextValueOrPlaceholder - = (!m_placeholderVisible && result.innerNode() == innerTextElement()) - || (m_placeholderVisible && result.innerNode()->isDescendantOf(innerTextElement())); - if (result.innerNode() == node() || resultIsTextValueOrPlaceholder) + if (result.innerNode() == node() || result.innerNode() == innerTextElement()) hitInnerTextElement(result, x, y, tx, ty); return true; @@ -102,9 +97,9 @@ void RenderTextControlMultiLine::adjustControlHeightBasedOnLineHeight(int lineHe setHeight(height() + lineHeight * static_cast<HTMLTextAreaElement*>(node())->rows()); } -int RenderTextControlMultiLine::baselinePosition(bool firstLine, LineDirectionMode direction, LinePositionMode linePositionMode) const +int RenderTextControlMultiLine::baselinePosition(FontBaseline baselineType, bool firstLine, LineDirectionMode direction, LinePositionMode linePositionMode) const { - return RenderBox::baselinePosition(firstLine, direction, linePositionMode); + return RenderBox::baselinePosition(baselineType, firstLine, direction, linePositionMode); } void RenderTextControlMultiLine::updateFromElement() @@ -112,11 +107,7 @@ void RenderTextControlMultiLine::updateFromElement() createSubtreeIfNeeded(0); RenderTextControl::updateFromElement(); - HTMLTextAreaElement* textArea = static_cast<HTMLTextAreaElement*>(node()); - if (m_placeholderVisible) - setInnerTextValue(textArea->strippedPlaceholder()); - else - setInnerTextValue(textArea->value()); + setInnerTextValue(static_cast<HTMLTextAreaElement*>(node())->value()); } void RenderTextControlMultiLine::cacheSelection(int start, int end) @@ -126,16 +117,8 @@ void RenderTextControlMultiLine::cacheSelection(int start, int end) PassRefPtr<RenderStyle> RenderTextControlMultiLine::createInnerTextStyle(const RenderStyle* startStyle) const { - RefPtr<RenderStyle> textBlockStyle; - if (m_placeholderVisible) { - if (RenderStyle* pseudoStyle = getCachedPseudoStyle(INPUT_PLACEHOLDER)) - textBlockStyle = RenderStyle::clone(pseudoStyle); - } - if (!textBlockStyle) { - textBlockStyle = RenderStyle::create(); - textBlockStyle->inheritFrom(startStyle); - } - + RefPtr<RenderStyle> textBlockStyle = RenderStyle::create(); + textBlockStyle->inheritFrom(startStyle); adjustInnerTextStyle(startStyle, textBlockStyle.get()); textBlockStyle->setDisplay(BLOCK); @@ -146,5 +129,25 @@ RenderStyle* RenderTextControlMultiLine::textBaseStyle() const { return style(); } + +int RenderTextControlMultiLine::textBlockInsetLeft() const +{ + int inset = borderLeft() + paddingLeft(); + if (HTMLElement* innerText = innerTextElement()) { + if (RenderBox* innerTextRenderer = innerText->renderBox()) + inset += innerTextRenderer->paddingLeft(); + } + return inset; +} + +int RenderTextControlMultiLine::textBlockInsetRight() const +{ + int inset = borderRight() + paddingRight(); + if (HTMLElement* innerText = innerTextElement()) { + if (RenderBox* innerTextRenderer = innerText->renderBox()) + inset += innerTextRenderer->paddingRight(); + } + return inset; +} } |