         
         // Trigger bindings to textChanged.
         dispatchEvent(new Event("textChanged"));
+
+        // The default event to trigger a validator.
+        dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));                   
     }
 
+    //----------------------------------
+    //  widthInChars
+    //----------------------------------
+
+    /**
+     *  Documentation is not currently available.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get widthInChars():Number
+    {
+        return getWidthInChars();
+    }
+
+    /**
+     *  @private
+     */
+    public function set widthInChars(value:Number):void
+    {
+        setWidthInChars(value);
+    }
+    
     //--------------------------------------------------------------------------
     //
     //  Overridden methods

    {
        super.partAdded(partName, instance);

        if (instance == textView)
        {
            // In default.css, the TextInput selector has a declaration
            // for lineBreak which sets it to "explicit".  It needs to be on
            // TextInput rather than RichEditableText so that if changed later it
            // will be inherited.
            textView.multiline = false;
            
            // TextInput should always be 1 line.
            textView.heightInLines = 1;
        }
    }
}

 *  @playerversion AIR 1.5
 *  @productversion Flex 4
 */
public class TextInput extends SkinnableTextBase
{
    include "../core/Version.as";

