webengine/osswebengine/WebCore/html/HTMLInputElement.cpp
branchRCL_3
changeset 47 e1bea15f9a39
parent 5 10e98eab6f85
child 48 79859ed3eea9
--- a/webengine/osswebengine/WebCore/html/HTMLInputElement.cpp	Thu Jul 15 19:53:20 2010 +0300
+++ b/webengine/osswebengine/WebCore/html/HTMLInputElement.cpp	Thu Aug 19 10:58:56 2010 +0300
@@ -492,40 +492,40 @@
     return static_cast<RenderTextControl*>(renderer())->selectionEnd();
 }
 
+static bool isTextFieldWithRenderer(HTMLInputElement* element) 
+{ 
+    if (!element->isTextField()) 
+        return false; 
+ 
+    element->document()->updateLayoutIgnorePendingStylesheets(); 
+    if (!element->renderer()) 
+        return false; 
+ 
+    return true; 
+} 
+
 void HTMLInputElement::setSelectionStart(int start)
 {
-    if (!isTextField())
-        return;
-    if (!renderer())
-        return;
-    static_cast<RenderTextControl*>(renderer())->setSelectionStart(start);
+	if (isTextFieldWithRenderer(this))
+        static_cast<RenderTextControl*>(renderer())->setSelectionStart(start);
 }
 
 void HTMLInputElement::setSelectionEnd(int end)
 {
-    if (!isTextField())
-        return;
-    if (!renderer())
-        return;
-    static_cast<RenderTextControl*>(renderer())->setSelectionEnd(end);
+	if (isTextFieldWithRenderer(this))
+        static_cast<RenderTextControl*>(renderer())->setSelectionEnd(end);
 }
 
 void HTMLInputElement::select()
 {
-    if (!isTextField())
-        return;
-    if (!renderer())
-        return;
-    static_cast<RenderTextControl*>(renderer())->select();
+	if (isTextFieldWithRenderer(this))
+        static_cast<RenderTextControl*>(renderer())->select();
 }
 
 void HTMLInputElement::setSelectionRange(int start, int end)
 {
-    if (!isTextField())
-        return;
-    if (!renderer())
-        return;
-    static_cast<RenderTextControl*>(renderer())->setSelectionRange(start, end);
+	if (isTextFieldWithRenderer(this))
+        static_cast<RenderTextControl*>(renderer())->setSelectionRange(start, end);
 }
 
 void HTMLInputElement::accessKeyAction(bool sendToAnyElement)