Date: 2010-03-03 18:08:04 -0800 (Wed, 03 Mar 2010)
In general, the fix for de-mirroring icons involves saving the original transform matrix before applying our scaling and translation. Our current method only partially does this resulting in bugs such as the vertical flipping. After saving the matrix, we can restore the original transform matrix when applying most properties that would affect our calculations (width, height, scaleX, scaleY, x). We also use backing variables for scaleX and scaleY since they may be affected by the matrix calculations and by setting width and height. I?\226?\128?\153ve also tried to simplify the case where we are switching back to not mirroring by restoring the original matrix and setting properties normally.
-Modified validateTransformMatrix to only handle the mirroring case. It saves the original matrix to a private variable, origMatrix, and applies matrix transformations on the current transform matrix. The transformations are similar to the pattern in AdvancedLayoutFeatures.build2DMatrix. We must use matrix transformations in order to make sure our transformations work with other transformations (e.g. rotation).
-In the addedHandler, I split the logic for mirroring and not mirroring. For the mirroring case, we also set the backing variables in addition to calling validateTransformMatrix. For the normal case, we restore the transform matrix to origMatrix.
-In each of the property setters, we first restore the transform matrix to origMatrix before setting the property. After setting the property, we apply de-mirroring by calling validateTransformMatrix.
QE notes: No
Doc notes: No
Bugs: SDK-25657, SDK-25684
Tests run: checkintests, Mirroring, Button, Alert, Tree
Is noteworthy for integration: No