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

Side by Side Diff: Source/core/rendering/RenderTextControlSingleLine.cpp

Issue 340273003: Rename innerTextElement/Value used in <input> and <textarea> to innerEditor. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /** 1 /**
2 * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2010 Apple Inc. All rights reserved.
3 * (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 3 * (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
4 * Copyright (C) 2010 Google Inc. All rights reserved. 4 * Copyright (C) 2010 Google Inc. All rights reserved.
5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). 5 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 26 matching lines...) Expand all
37 37
38 using namespace std; 38 using namespace std;
39 39
40 namespace WebCore { 40 namespace WebCore {
41 41
42 using namespace HTMLNames; 42 using namespace HTMLNames;
43 43
44 RenderTextControlSingleLine::RenderTextControlSingleLine(HTMLInputElement* eleme nt) 44 RenderTextControlSingleLine::RenderTextControlSingleLine(HTMLInputElement* eleme nt)
45 : RenderTextControl(element) 45 : RenderTextControl(element)
46 , m_shouldDrawCapsLockIndicator(false) 46 , m_shouldDrawCapsLockIndicator(false)
47 , m_desiredInnerTextLogicalHeight(-1) 47 , m_desiredInnerEditorLogicalHeight(-1)
48 { 48 {
49 } 49 }
50 50
51 RenderTextControlSingleLine::~RenderTextControlSingleLine() 51 RenderTextControlSingleLine::~RenderTextControlSingleLine()
52 { 52 {
53 } 53 }
54 54
55 inline Element* RenderTextControlSingleLine::containerElement() const 55 inline Element* RenderTextControlSingleLine::containerElement() const
56 { 56 {
57 return inputElement()->userAgentShadowRoot()->getElementById(ShadowElementNa mes::textFieldContainer()); 57 return inputElement()->userAgentShadowRoot()->getElementById(ShadowElementNa mes::textFieldContainer());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 // styleDidChange(). We need them because 99 // styleDidChange(). We need them because
100 // - Center the inner elements vertically if the input height is taller than 100 // - Center the inner elements vertically if the input height is taller than
101 // the intrinsic height of the inner elements. 101 // the intrinsic height of the inner elements.
102 // - Shrink the inner elment heights if the input height is samller than the 102 // - Shrink the inner elment heights if the input height is samller than the
103 // intrinsic heights of the inner elements. 103 // intrinsic heights of the inner elements.
104 104
105 // We don't honor paddings and borders for textfields without decorations 105 // We don't honor paddings and borders for textfields without decorations
106 // and type=search if the text height is taller than the contentHeight() 106 // and type=search if the text height is taller than the contentHeight()
107 // because of compability. 107 // because of compability.
108 108
109 RenderBox* innerTextRenderer = innerTextElement()->renderBox(); 109 RenderBox* innerEditorRenderer = innerEditorElement()->renderBox();
110 RenderBox* viewPortRenderer = editingViewPortElement() ? editingViewPortElem ent()->renderBox() : 0; 110 RenderBox* viewPortRenderer = editingViewPortElement() ? editingViewPortElem ent()->renderBox() : 0;
111 111
112 // To ensure consistency between layouts, we need to reset any conditionally overriden height. 112 // To ensure consistency between layouts, we need to reset any conditionally overriden height.
113 if (innerTextRenderer && !innerTextRenderer->style()->logicalHeight().isAuto ()) { 113 if (innerEditorRenderer && !innerEditorRenderer->style()->logicalHeight().is Auto()) {
114 innerTextRenderer->style()->setLogicalHeight(Length(Auto)); 114 innerEditorRenderer->style()->setLogicalHeight(Length(Auto));
115 layoutScope.setNeedsLayout(innerTextRenderer); 115 layoutScope.setNeedsLayout(innerEditorRenderer);
116 HTMLElement* placeholderElement = inputElement()->placeholderElement(); 116 HTMLElement* placeholderElement = inputElement()->placeholderElement();
117 if (RenderBox* placeholderBox = placeholderElement ? placeholderElement- >renderBox() : 0) 117 if (RenderBox* placeholderBox = placeholderElement ? placeholderElement- >renderBox() : 0)
118 layoutScope.setNeedsLayout(placeholderBox); 118 layoutScope.setNeedsLayout(placeholderBox);
119 } 119 }
120 if (viewPortRenderer && !viewPortRenderer->style()->logicalHeight().isAuto() ) { 120 if (viewPortRenderer && !viewPortRenderer->style()->logicalHeight().isAuto() ) {
121 viewPortRenderer->style()->setLogicalHeight(Length(Auto)); 121 viewPortRenderer->style()->setLogicalHeight(Length(Auto));
122 layoutScope.setNeedsLayout(viewPortRenderer); 122 layoutScope.setNeedsLayout(viewPortRenderer);
123 } 123 }
124 124
125 RenderBlockFlow::layoutBlock(false); 125 RenderBlockFlow::layoutBlock(false);
126 126
127 Element* container = containerElement(); 127 Element* container = containerElement();
128 RenderBox* containerRenderer = container ? container->renderBox() : 0; 128 RenderBox* containerRenderer = container ? container->renderBox() : 0;
129 129
130 // Set the text block height 130 // Set the text block height
131 LayoutUnit desiredLogicalHeight = textBlockLogicalHeight(); 131 LayoutUnit desiredLogicalHeight = textBlockLogicalHeight();
132 LayoutUnit logicalHeightLimit = computeLogicalHeightLimit(); 132 LayoutUnit logicalHeightLimit = computeLogicalHeightLimit();
133 if (innerTextRenderer && innerTextRenderer->logicalHeight() > logicalHeightL imit) { 133 if (innerEditorRenderer && innerEditorRenderer->logicalHeight() > logicalHei ghtLimit) {
134 if (desiredLogicalHeight != innerTextRenderer->logicalHeight()) 134 if (desiredLogicalHeight != innerEditorRenderer->logicalHeight())
135 layoutScope.setNeedsLayout(this); 135 layoutScope.setNeedsLayout(this);
136 136
137 m_desiredInnerTextLogicalHeight = desiredLogicalHeight; 137 m_desiredInnerEditorLogicalHeight = desiredLogicalHeight;
138 138
139 innerTextRenderer->style()->setLogicalHeight(Length(desiredLogicalHeight , Fixed)); 139 innerEditorRenderer->style()->setLogicalHeight(Length(desiredLogicalHeig ht, Fixed));
140 layoutScope.setNeedsLayout(innerTextRenderer); 140 layoutScope.setNeedsLayout(innerEditorRenderer);
141 if (viewPortRenderer) { 141 if (viewPortRenderer) {
142 viewPortRenderer->style()->setLogicalHeight(Length(desiredLogicalHei ght, Fixed)); 142 viewPortRenderer->style()->setLogicalHeight(Length(desiredLogicalHei ght, Fixed));
143 layoutScope.setNeedsLayout(viewPortRenderer); 143 layoutScope.setNeedsLayout(viewPortRenderer);
144 } 144 }
145 } 145 }
146 // The container might be taller because of decoration elements. 146 // The container might be taller because of decoration elements.
147 if (containerRenderer) { 147 if (containerRenderer) {
148 containerRenderer->layoutIfNeeded(); 148 containerRenderer->layoutIfNeeded();
149 LayoutUnit containerLogicalHeight = containerRenderer->logicalHeight(); 149 LayoutUnit containerLogicalHeight = containerRenderer->logicalHeight();
150 if (containerLogicalHeight > logicalHeightLimit) { 150 if (containerLogicalHeight > logicalHeightLimit) {
151 containerRenderer->style()->setLogicalHeight(Length(logicalHeightLim it, Fixed)); 151 containerRenderer->style()->setLogicalHeight(Length(logicalHeightLim it, Fixed));
152 layoutScope.setNeedsLayout(this); 152 layoutScope.setNeedsLayout(this);
153 } else if (containerRenderer->logicalHeight() < contentLogicalHeight()) { 153 } else if (containerRenderer->logicalHeight() < contentLogicalHeight()) {
154 containerRenderer->style()->setLogicalHeight(Length(contentLogicalHe ight(), Fixed)); 154 containerRenderer->style()->setLogicalHeight(Length(contentLogicalHe ight(), Fixed));
155 layoutScope.setNeedsLayout(this); 155 layoutScope.setNeedsLayout(this);
156 } else 156 } else
157 containerRenderer->style()->setLogicalHeight(Length(containerLogical Height, Fixed)); 157 containerRenderer->style()->setLogicalHeight(Length(containerLogical Height, Fixed));
158 } 158 }
159 159
160 // If we need another layout pass, we have changed one of children's height so we need to relayout them. 160 // If we need another layout pass, we have changed one of children's height so we need to relayout them.
161 if (needsLayout()) 161 if (needsLayout())
162 RenderBlockFlow::layoutBlock(true); 162 RenderBlockFlow::layoutBlock(true);
163 163
164 // Center the child block in the block progression direction (vertical cente ring for horizontal text fields). 164 // Center the child block in the block progression direction (vertical cente ring for horizontal text fields).
165 if (!container && innerTextRenderer && innerTextRenderer->height() != conten tLogicalHeight()) { 165 if (!container && innerEditorRenderer && innerEditorRenderer->height() != co ntentLogicalHeight()) {
166 LayoutUnit logicalHeightDiff = innerTextRenderer->logicalHeight() - cont entLogicalHeight(); 166 LayoutUnit logicalHeightDiff = innerEditorRenderer->logicalHeight() - co ntentLogicalHeight();
167 innerTextRenderer->setLogicalTop(innerTextRenderer->logicalTop() - (logi calHeightDiff / 2 + layoutMod(logicalHeightDiff, 2))); 167 innerEditorRenderer->setLogicalTop(innerEditorRenderer->logicalTop() - ( logicalHeightDiff / 2 + layoutMod(logicalHeightDiff, 2)));
168 } else 168 } else
169 centerContainerIfNeeded(containerRenderer); 169 centerContainerIfNeeded(containerRenderer);
170 170
171 HTMLElement* placeholderElement = inputElement()->placeholderElement(); 171 HTMLElement* placeholderElement = inputElement()->placeholderElement();
172 if (RenderBox* placeholderBox = placeholderElement ? placeholderElement->ren derBox() : 0) { 172 if (RenderBox* placeholderBox = placeholderElement ? placeholderElement->ren derBox() : 0) {
173 LayoutSize innerTextSize; 173 LayoutSize innerEditorSize;
174 174
175 if (innerTextRenderer) 175 if (innerEditorRenderer)
176 innerTextSize = innerTextRenderer->size(); 176 innerEditorSize = innerEditorRenderer->size();
177 placeholderBox->style()->setWidth(Length(innerTextSize.width() - placeho lderBox->borderAndPaddingWidth(), Fixed)); 177 placeholderBox->style()->setWidth(Length(innerEditorSize.width() - place holderBox->borderAndPaddingWidth(), Fixed));
178 placeholderBox->style()->setHeight(Length(innerTextSize.height() - place holderBox->borderAndPaddingHeight(), Fixed)); 178 placeholderBox->style()->setHeight(Length(innerEditorSize.height() - pla ceholderBox->borderAndPaddingHeight(), Fixed));
179 bool neededLayout = placeholderBox->needsLayout(); 179 bool neededLayout = placeholderBox->needsLayout();
180 bool placeholderBoxHadLayout = placeholderBox->everHadLayout(); 180 bool placeholderBoxHadLayout = placeholderBox->everHadLayout();
181 placeholderBox->layoutIfNeeded(); 181 placeholderBox->layoutIfNeeded();
182 LayoutPoint textOffset; 182 LayoutPoint textOffset;
183 if (innerTextRenderer) 183 if (innerEditorRenderer)
184 textOffset = innerTextRenderer->location(); 184 textOffset = innerEditorRenderer->location();
185 if (editingViewPortElement() && editingViewPortElement()->renderBox()) 185 if (editingViewPortElement() && editingViewPortElement()->renderBox())
186 textOffset += toLayoutSize(editingViewPortElement()->renderBox()->lo cation()); 186 textOffset += toLayoutSize(editingViewPortElement()->renderBox()->lo cation());
187 if (containerRenderer) 187 if (containerRenderer)
188 textOffset += toLayoutSize(containerRenderer->location()); 188 textOffset += toLayoutSize(containerRenderer->location());
189 placeholderBox->setLocation(textOffset); 189 placeholderBox->setLocation(textOffset);
190 190
191 if (!placeholderBoxHadLayout && placeholderBox->checkForPaintInvalidatio nDuringLayout()) { 191 if (!placeholderBoxHadLayout && placeholderBox->checkForPaintInvalidatio nDuringLayout()) {
192 // This assumes a shadow tree without floats. If floats are added, t he 192 // This assumes a shadow tree without floats. If floats are added, t he
193 // logic should be shared with RenderBlockFlow::layoutBlockChild. 193 // logic should be shared with RenderBlockFlow::layoutBlockChild.
194 placeholderBox->paintInvalidationForWholeRenderer(); 194 placeholderBox->paintInvalidationForWholeRenderer();
195 } 195 }
196 // The placeholder gets layout last, after the parent text control and i ts other children, 196 // The placeholder gets layout last, after the parent text control and i ts other children,
197 // so in order to get the correct overflow from the placeholder we need to recompute it now. 197 // so in order to get the correct overflow from the placeholder we need to recompute it now.
198 if (neededLayout) 198 if (neededLayout)
199 computeOverflow(clientLogicalBottom()); 199 computeOverflow(clientLogicalBottom());
200 } 200 }
201 } 201 }
202 202
203 bool RenderTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, Hit TestResult& result, const HitTestLocation& locationInContainer, const LayoutPoin t& accumulatedOffset, HitTestAction hitTestAction) 203 bool RenderTextControlSingleLine::nodeAtPoint(const HitTestRequest& request, Hit TestResult& result, const HitTestLocation& locationInContainer, const LayoutPoin t& accumulatedOffset, HitTestAction hitTestAction)
204 { 204 {
205 if (!RenderTextControl::nodeAtPoint(request, result, locationInContainer, ac cumulatedOffset, hitTestAction)) 205 if (!RenderTextControl::nodeAtPoint(request, result, locationInContainer, ac cumulatedOffset, hitTestAction))
206 return false; 206 return false;
207 207
208 // Say that we hit the inner text element if 208 // Say that we hit the inner text element if
209 // - we hit a node inside the inner text element, 209 // - we hit a node inside the inner text element,
210 // - we hit the <input> element (e.g. we're over the border or padding), or 210 // - we hit the <input> element (e.g. we're over the border or padding), or
211 // - we hit regions not in any decoration buttons. 211 // - we hit regions not in any decoration buttons.
212 Element* container = containerElement(); 212 Element* container = containerElement();
213 if (result.innerNode()->isDescendantOf(innerTextElement()) || result.innerNo de() == node() || (container && container == result.innerNode())) { 213 if (result.innerNode()->isDescendantOf(innerEditorElement()) || result.inner Node() == node() || (container && container == result.innerNode())) {
214 LayoutPoint pointInParent = locationInContainer.point(); 214 LayoutPoint pointInParent = locationInContainer.point();
215 if (container && editingViewPortElement()) { 215 if (container && editingViewPortElement()) {
216 if (editingViewPortElement()->renderBox()) 216 if (editingViewPortElement()->renderBox())
217 pointInParent -= toLayoutSize(editingViewPortElement()->renderBo x()->location()); 217 pointInParent -= toLayoutSize(editingViewPortElement()->renderBo x()->location());
218 if (container->renderBox()) 218 if (container->renderBox())
219 pointInParent -= toLayoutSize(container->renderBox()->location() ); 219 pointInParent -= toLayoutSize(container->renderBox()->location() );
220 } 220 }
221 hitInnerTextElement(result, pointInParent, accumulatedOffset); 221 hitInnerEditorElement(result, pointInParent, accumulatedOffset);
222 } 222 }
223 return true; 223 return true;
224 } 224 }
225 225
226 void RenderTextControlSingleLine::styleDidChange(StyleDifference diff, const Ren derStyle* oldStyle) 226 void RenderTextControlSingleLine::styleDidChange(StyleDifference diff, const Ren derStyle* oldStyle)
227 { 227 {
228 m_desiredInnerTextLogicalHeight = -1; 228 m_desiredInnerEditorLogicalHeight = -1;
229 RenderTextControl::styleDidChange(diff, oldStyle); 229 RenderTextControl::styleDidChange(diff, oldStyle);
230 230
231 // We may have set the width and the height in the old style in layout(). 231 // We may have set the width and the height in the old style in layout().
232 // Reset them now to avoid getting a spurious layout hint. 232 // Reset them now to avoid getting a spurious layout hint.
233 Element* viewPort = editingViewPortElement(); 233 Element* viewPort = editingViewPortElement();
234 if (RenderObject* viewPortRenderer = viewPort ? viewPort->renderer() : 0) { 234 if (RenderObject* viewPortRenderer = viewPort ? viewPort->renderer() : 0) {
235 viewPortRenderer->style()->setHeight(Length()); 235 viewPortRenderer->style()->setHeight(Length());
236 viewPortRenderer->style()->setWidth(Length()); 236 viewPortRenderer->style()->setWidth(Length());
237 } 237 }
238 Element* container = containerElement(); 238 Element* container = containerElement();
239 if (RenderObject* containerRenderer = container ? container->renderer() : 0) { 239 if (RenderObject* containerRenderer = container ? container->renderer() : 0) {
240 containerRenderer->style()->setHeight(Length()); 240 containerRenderer->style()->setHeight(Length());
241 containerRenderer->style()->setWidth(Length()); 241 containerRenderer->style()->setWidth(Length());
242 } 242 }
243 RenderObject* innerTextRenderer = innerTextElement()->renderer(); 243 RenderObject* innerEditorRenderer = innerEditorElement()->renderer();
244 if (innerTextRenderer && diff.needsFullLayout()) 244 if (innerEditorRenderer && diff.needsFullLayout())
245 innerTextRenderer->setNeedsLayoutAndFullPaintInvalidation(); 245 innerEditorRenderer->setNeedsLayoutAndFullPaintInvalidation();
246 if (HTMLElement* placeholder = inputElement()->placeholderElement()) 246 if (HTMLElement* placeholder = inputElement()->placeholderElement())
247 placeholder->setInlineStyleProperty(CSSPropertyTextOverflow, textShouldB eTruncated() ? CSSValueEllipsis : CSSValueClip); 247 placeholder->setInlineStyleProperty(CSSPropertyTextOverflow, textShouldB eTruncated() ? CSSValueEllipsis : CSSValueClip);
248 setHasOverflowClip(false); 248 setHasOverflowClip(false);
249 } 249 }
250 250
251 void RenderTextControlSingleLine::capsLockStateMayHaveChanged() 251 void RenderTextControlSingleLine::capsLockStateMayHaveChanged()
252 { 252 {
253 if (!node()) 253 if (!node())
254 return; 254 return;
255 255
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 } 332 }
333 333
334 return result; 334 return result;
335 } 335 }
336 336
337 LayoutUnit RenderTextControlSingleLine::computeControlLogicalHeight(LayoutUnit l ineHeight, LayoutUnit nonContentHeight) const 337 LayoutUnit RenderTextControlSingleLine::computeControlLogicalHeight(LayoutUnit l ineHeight, LayoutUnit nonContentHeight) const
338 { 338 {
339 return lineHeight + nonContentHeight; 339 return lineHeight + nonContentHeight;
340 } 340 }
341 341
342 PassRefPtr<RenderStyle> RenderTextControlSingleLine::createInnerTextStyle(const RenderStyle* startStyle) const 342 PassRefPtr<RenderStyle> RenderTextControlSingleLine::createInnerEditorStyle(cons t RenderStyle* startStyle) const
343 { 343 {
344 RefPtr<RenderStyle> textBlockStyle = RenderStyle::create(); 344 RefPtr<RenderStyle> textBlockStyle = RenderStyle::create();
345 textBlockStyle->inheritFrom(startStyle); 345 textBlockStyle->inheritFrom(startStyle);
346 adjustInnerTextStyle(textBlockStyle.get()); 346 adjustInnerEditorStyle(textBlockStyle.get());
347 347
348 textBlockStyle->setWhiteSpace(PRE); 348 textBlockStyle->setWhiteSpace(PRE);
349 textBlockStyle->setOverflowWrap(NormalOverflowWrap); 349 textBlockStyle->setOverflowWrap(NormalOverflowWrap);
350 textBlockStyle->setOverflowX(OHIDDEN); 350 textBlockStyle->setOverflowX(OHIDDEN);
351 textBlockStyle->setOverflowY(OHIDDEN); 351 textBlockStyle->setOverflowY(OHIDDEN);
352 textBlockStyle->setTextOverflow(textShouldBeTruncated() ? TextOverflowEllips is : TextOverflowClip); 352 textBlockStyle->setTextOverflow(textShouldBeTruncated() ? TextOverflowEllips is : TextOverflowClip);
353 353
354 if (m_desiredInnerTextLogicalHeight >= 0) 354 if (m_desiredInnerEditorLogicalHeight >= 0)
355 textBlockStyle->setLogicalHeight(Length(m_desiredInnerTextLogicalHeight, Fixed)); 355 textBlockStyle->setLogicalHeight(Length(m_desiredInnerEditorLogicalHeigh t, Fixed));
356 // Do not allow line-height to be smaller than our default. 356 // Do not allow line-height to be smaller than our default.
357 if (textBlockStyle->fontMetrics().lineSpacing() > lineHeight(true, Horizonta lLine, PositionOfInteriorLineBoxes)) 357 if (textBlockStyle->fontMetrics().lineSpacing() > lineHeight(true, Horizonta lLine, PositionOfInteriorLineBoxes))
358 textBlockStyle->setLineHeight(RenderStyle::initialLineHeight()); 358 textBlockStyle->setLineHeight(RenderStyle::initialLineHeight());
359 359
360 textBlockStyle->setDisplay(BLOCK); 360 textBlockStyle->setDisplay(BLOCK);
361 textBlockStyle->setUnique(); 361 textBlockStyle->setUnique();
362 362
363 if (inputElement()->shouldRevealPassword()) 363 if (inputElement()->shouldRevealPassword())
364 textBlockStyle->setTextSecurity(TSNONE); 364 textBlockStyle->setTextSecurity(TSNONE);
365 365
366 return textBlockStyle.release(); 366 return textBlockStyle.release();
367 } 367 }
368 368
369 bool RenderTextControlSingleLine::textShouldBeTruncated() const 369 bool RenderTextControlSingleLine::textShouldBeTruncated() const
370 { 370 {
371 return document().focusedElement() != node() && style()->textOverflow() == T extOverflowEllipsis; 371 return document().focusedElement() != node() && style()->textOverflow() == T extOverflowEllipsis;
372 } 372 }
373 373
374 void RenderTextControlSingleLine::autoscroll(const IntPoint& position) 374 void RenderTextControlSingleLine::autoscroll(const IntPoint& position)
375 { 375 {
376 RenderBox* renderer = innerTextElement()->renderBox(); 376 RenderBox* renderer = innerEditorElement()->renderBox();
377 if (!renderer) 377 if (!renderer)
378 return; 378 return;
379 379
380 renderer->autoscroll(position); 380 renderer->autoscroll(position);
381 } 381 }
382 382
383 LayoutUnit RenderTextControlSingleLine::scrollWidth() const 383 LayoutUnit RenderTextControlSingleLine::scrollWidth() const
384 { 384 {
385 if (innerTextElement()) 385 if (innerEditorElement())
386 return innerTextElement()->scrollWidth(); 386 return innerEditorElement()->scrollWidth();
387 return RenderBlockFlow::scrollWidth(); 387 return RenderBlockFlow::scrollWidth();
388 } 388 }
389 389
390 LayoutUnit RenderTextControlSingleLine::scrollHeight() const 390 LayoutUnit RenderTextControlSingleLine::scrollHeight() const
391 { 391 {
392 if (innerTextElement()) 392 if (innerEditorElement())
393 return innerTextElement()->scrollHeight(); 393 return innerEditorElement()->scrollHeight();
394 return RenderBlockFlow::scrollHeight(); 394 return RenderBlockFlow::scrollHeight();
395 } 395 }
396 396
397 LayoutUnit RenderTextControlSingleLine::scrollLeft() const 397 LayoutUnit RenderTextControlSingleLine::scrollLeft() const
398 { 398 {
399 if (innerTextElement()) 399 if (innerEditorElement())
400 return innerTextElement()->scrollLeft(); 400 return innerEditorElement()->scrollLeft();
401 return RenderBlockFlow::scrollLeft(); 401 return RenderBlockFlow::scrollLeft();
402 } 402 }
403 403
404 LayoutUnit RenderTextControlSingleLine::scrollTop() const 404 LayoutUnit RenderTextControlSingleLine::scrollTop() const
405 { 405 {
406 if (innerTextElement()) 406 if (innerEditorElement())
407 return innerTextElement()->scrollTop(); 407 return innerEditorElement()->scrollTop();
408 return RenderBlockFlow::scrollTop(); 408 return RenderBlockFlow::scrollTop();
409 } 409 }
410 410
411 void RenderTextControlSingleLine::setScrollLeft(LayoutUnit newLeft) 411 void RenderTextControlSingleLine::setScrollLeft(LayoutUnit newLeft)
412 { 412 {
413 if (innerTextElement()) 413 if (innerEditorElement())
414 innerTextElement()->setScrollLeft(newLeft); 414 innerEditorElement()->setScrollLeft(newLeft);
415 } 415 }
416 416
417 void RenderTextControlSingleLine::setScrollTop(LayoutUnit newTop) 417 void RenderTextControlSingleLine::setScrollTop(LayoutUnit newTop)
418 { 418 {
419 if (innerTextElement()) 419 if (innerEditorElement())
420 innerTextElement()->setScrollTop(newTop); 420 innerEditorElement()->setScrollTop(newTop);
421 } 421 }
422 422
423 HTMLInputElement* RenderTextControlSingleLine::inputElement() const 423 HTMLInputElement* RenderTextControlSingleLine::inputElement() const
424 { 424 {
425 return toHTMLInputElement(node()); 425 return toHTMLInputElement(node());
426 } 426 }
427 427
428 } 428 }
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderTextControlSingleLine.h ('k') | Source/web/WebFormControlElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698