93 return static_cast<RenderTextControl *>(renderer())->selectionEnd(); |
93 return static_cast<RenderTextControl *>(renderer())->selectionEnd(); |
94 } |
94 } |
95 return 0; |
95 return 0; |
96 } |
96 } |
97 |
97 |
98 static RenderTextControl* rendererAfterUpdateLayout(HTMLTextAreaElement* element) |
|
99 { |
|
100 element->document()->updateLayoutIgnorePendingStylesheets(); |
|
101 return static_cast<RenderTextControl*>(element->renderer()); |
|
102 } |
|
103 |
|
104 void HTMLTextAreaElement::setSelectionStart(int start) |
98 void HTMLTextAreaElement::setSelectionStart(int start) |
105 { |
99 { |
106 if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) |
100 if (renderer()) |
107 renderer->setSelectionStart(start); |
101 static_cast<RenderTextControl*>(renderer())->setSelectionStart(start); |
108 } |
102 } |
109 |
103 |
110 void HTMLTextAreaElement::setSelectionEnd(int end) |
104 void HTMLTextAreaElement::setSelectionEnd(int end) |
111 { |
105 { |
112 if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) |
106 if (renderer()) |
113 renderer->setSelectionEnd(end); |
107 static_cast<RenderTextControl*>(renderer())->setSelectionEnd(end); |
114 } |
108 } |
115 |
109 |
116 void HTMLTextAreaElement::select() |
110 void HTMLTextAreaElement::select() |
117 { |
111 { |
118 if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) |
112 if (renderer()) |
119 renderer->select(); |
113 static_cast<RenderTextControl *>(renderer())->select(); |
120 } |
114 } |
121 |
115 |
122 void HTMLTextAreaElement::setSelectionRange(int start, int end) |
116 void HTMLTextAreaElement::setSelectionRange(int start, int end) |
123 { |
117 { |
124 if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) |
118 if (renderer()) |
125 renderer->setSelectionRange(start, end); |
119 static_cast<RenderTextControl*>(renderer())->setSelectionRange(start, end); |
126 } |
120 } |
127 |
121 |
128 void HTMLTextAreaElement::childrenChanged() |
122 void HTMLTextAreaElement::childrenChanged() |
129 { |
123 { |
130 setValue(defaultValue()); |
124 setValue(defaultValue()); |