[It would be great if you could review this sooner than later as the component sampler is currently broken in trunk due to my previous attempt at this issue.]
Change ptw-20110314-mHC by [email protected] on 2011-03-14 08:33:32 EDT in /Users/ptw/OpenLaszlo/trunk-devo for http://svn.openlaszlo.org/openlaszlo/trunk Summary: Straighten out borders and shadows vs. clipping Bugs Fixed: LPP-9667 Shadows can't display if 'clip=true' Technical Reviewer: [email protected] [email protected] (pending) QA Reviewer: [email protected] (pending) Overview: Both DHTML and SWF10 incorrectly clipped any border or shadow on a view if the view was set to clip. These decorations should be outside the view, only the view children should be clipped. Details: LzSprite.js: The clipping rectangle we want is exactly what HTML divs implement if you say `overflow: hidden`. There's no need to use the CSS rect. When we clip a view, we only want to clip the corresponding clickdiv (not the clickcontainerdiv), this solves LPP-9177's issue with clickdivs in a more straightforward fashion. LzTextSprite.as: No need to override updateShadow. LzSprite.as: Use Shape rather than Sprite for decorations (border, shadow, background). Give border and shadow their own separate shapes that sit just behind the view's sprite in the parent display list, so they will not be clipped if clipping is enabled. Break out the drawing of the border and shadow, only draw them if they hav a dimension > 0. Make a single call to draw all decorations. setIndex is a common subroutine that knows how to move the view sprite and corresponding decoration shapes together in the parent display list -- used by all the ordering API's. Tests: Test case from bug, component-sampler, demos/house Files: M WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js M WEB-INF/lps/lfc/kernel/swf9/LzTextSprite.as M WEB-INF/lps/lfc/kernel/swf9/LzSprite.as Changeset: http://svn.openlaszlo.org/openlaszlo/patches/ptw-20110314-mHC.tar
