 	
 	/**
 	 *  @private
+	 *  When faking a mouseDown after a mouse up has occurred, if we get a rollOut
+	 *  event, we don't want to immediately set hovered = false so we can maintain 
+	 *  the down state until the mouseUpDeselectTimer is finished.  So we keep track
+	 *  that a rollOut event occurred and honor it later.
+	 */
+	private var rollOutWhileFakingDownState:Boolean = false;
+	
+	/**
+	 *  @private
 	 *  When there is a touchDelay and the touch interaction is complete (user mouseUp) before 
 	 *  the touchDelay is over, usually the component goes in to the down state for a period 
 	 *  of time to ensure the user gets visual feedback on this operation. 

                        mouseCaptured = true;
                        startDeselectButtonAfterDelayTimer();
                    }
                }
                break;
            }

        // that you don't get one so we force one on FOCUS_OUT.
        super.focusOutHandler(event);

		// If faking down state, let's not interrupt it because of a focusOut
		if (!(mouseUpDeselectTimer && mouseUpDeselectTimer.running))
			mouseCaptured = false;
		
        keyboardPressed = false;
    }

