Uploaded image for project: 'Apache Flex'
  1. Apache Flex
  2. FLEX-20843

scaleX/Y broken on anything extending UIComponent, when they are modified during LayoutManager.validateNow after validateProperties

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • Adobe Flex SDK 3.3 (Release)
    • None
    • Layout - General
    • None
    • Affected OS(s): All OS Platforms
      Affected OS(s): All OS Platforms
      Language Found: English

    Description

      Sorry I'm being slack and not providing a bug file.

      Steps to reproduce:
      1. Create a custom component
      2. Override measure, and set scaleX/Y sometimes in the overriden measure
      3. Create an instance of the componetn and put on the display list
      4. Invalidate the custom component's size
      5. Call LayoutManager.getInstance().validateNow

      Actual Results:

      Scale is never set correctly on the component.

      Expected Results:

      Scale is set correctly on the component.

      The problem is that LayoutManager.validateNow (unlike LayoutManager.validateClient) does not check to see if a validateSize triggered invalidateClientPropertiesFlag, and if so go back and first call validateProperties. When this happens UIComponent.measureSizes -> adjustSizesForScaleChanges are called, and in adjustSizesForScaleChanges it sets oldScaleX/Y, such that in UIComponent.commitProperties doesn't ever properly update super.scaleX/Y.

      Attachments

        Activity

          People

            adobejira Adobe JIRA
            adobejira Adobe JIRA
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: