webengine/osswebengine/WebCore/html/HTMLTextAreaElement.cpp
branchRCL_3
changeset 47 e1bea15f9a39
parent 0 dd21522fd290
child 48 79859ed3eea9
equal deleted inserted replaced
46:30342f40acbf 47:e1bea15f9a39
    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 
    98 void HTMLTextAreaElement::setSelectionStart(int start)
   104 void HTMLTextAreaElement::setSelectionStart(int start)
    99 {
   105 {
   100     if (renderer())
   106     if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) 
   101         static_cast<RenderTextControl*>(renderer())->setSelectionStart(start);
   107  	    renderer->setSelectionStart(start); 
   102 }
   108 }
   103 
   109 
   104 void HTMLTextAreaElement::setSelectionEnd(int end)
   110 void HTMLTextAreaElement::setSelectionEnd(int end)
   105 {
   111 {
   106     if (renderer())
   112     if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) 
   107         static_cast<RenderTextControl*>(renderer())->setSelectionEnd(end);
   113  	    renderer->setSelectionEnd(end);
   108 }
   114 }
   109 
   115 
   110 void HTMLTextAreaElement::select()
   116 void HTMLTextAreaElement::select()
   111 {
   117 {
   112     if (renderer())
   118     if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) 
   113         static_cast<RenderTextControl *>(renderer())->select();
   119  	    renderer->select(); 
   114 }
   120 }
   115 
   121 
   116 void HTMLTextAreaElement::setSelectionRange(int start, int end)
   122 void HTMLTextAreaElement::setSelectionRange(int start, int end)
   117 {
   123 {
   118     if (renderer())
   124     if (RenderTextControl* renderer = rendererAfterUpdateLayout(this)) 
   119         static_cast<RenderTextControl*>(renderer())->setSelectionRange(start, end);
   125  	   renderer->setSelectionRange(start, end); 
   120 }
   126 }
   121 
   127 
   122 void HTMLTextAreaElement::childrenChanged()
   128 void HTMLTextAreaElement::childrenChanged()
   123 {
   129 {
   124     setValue(defaultValue());
   130     setValue(defaultValue());