     //
     //--------------------------------------------------------------------------
     
+	/**
+	 *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+    override public function stylesInitialized():void
+    {
+        super.stylesInitialized();
+        setInteractionMode();
+    }
+	
+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+	override public function styleChanged(styleProp:String):void
+	{
+        super.styleChanged(styleProp);
+        if (!styleProp || styleProp == "styleName" || styleProp == "interactionMode")
+            setInteractionMode();
+    }
+		
+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+    private function setInteractionMode():void
+    {
+	    isTouchInteractionMode = getStyle("interactionMode") == InteractionMode.TOUCH;
+        if (!isCloseDropDownOnResizeExplicitlySet)
+            setCloseDropDownOnResize(!isTouchInteractionMode, false);
+    }
+		
+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.12
+     */
+    override public function setSelectedIndex(rowIndex:int, dispatchChangeEvent:Boolean = false, changeCaret:Boolean = true):void
+    {
+	    super.setSelectedIndex(rowIndex, dispatchChangeEvent, changeCaret);
+	    if (isTouchInteractionMode)
+	    {
+            userProposedSelectedIndex = rowIndex;
+            closeDropDown(true);
+        }
+    }
+		
+		
     /**
      *  @private
      *  Called by the initialize() method of UIComponent

            return false;
    }
        
    //----------------------------------
    //  userProposedSelectedIndex
    //----------------------------------


import spark.core.NavigationUnit;
import spark.events.DropDownEvent;
import spark.events.IndexChangeEvent;

import mx.core.mx_internal;
use namespace mx_internal;

//--------------------------------------
