summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderTextControlMultiLine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/rendering/RenderTextControlMultiLine.cpp')
-rw-r--r--WebCore/rendering/RenderTextControlMultiLine.cpp49
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;
+}
}