Denis Kokorin created FLEX-34621:
------------------------------------

             Summary: MXItemRenderer sets hovered to false when item is selected
                 Key: FLEX-34621
                 URL: https://issues.apache.org/jira/browse/FLEX-34621
             Project: Apache Flex
          Issue Type: Bug
          Components: MXItemRenderer
    Affects Versions: Apache Flex 4.13.0, Apache Flex 4.11.0
            Reporter: Denis Kokorin
            Priority: Minor


MXItemRenderer uses listBase.isItemHighlighted(data), but 
ListBase.isItemHighlighted returns *false* if item is selected!
So *hovered* is false even if mouse is over renderer.

{code:title=mx.controls.listClasses.MXItemRenderer.as}
    override protected function set hovered(value:Boolean):void
    {
        if (listData)
        {
            var listBase:mx.controls.listClasses.ListBase = 
mx.controls.listClasses.ListBase(listData.owner);
            if (listBase)
            {
                selected = listBase.isItemSelected(data);
                value = listBase.isItemHighlighted(data);
            }
        }
        super.hovered = value;
    }
{code}

{code:title=mx.controls.listClasses.ListBase.as}
    public function isItemHighlighted(data:Object):Boolean
    {
        if (data == null)
            return false;

        var isSelected:Boolean = highlightUID && selectedData[highlightUID];

        if (data is String)
            return (data == highlightUID && !isSelected);

        return itemToUID(data) == highlightUID && !isSelected;
    }
{code}

Workaround: copy hovered getter and setter from 
spark.components.supportClasses.ItemRenderer



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to