You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flex.apache.org by "Justin Mclean (JIRA)" <ji...@apache.org> on 2013/05/29 08:48:19 UTC

[jira] [Commented] (FLEX-32721) Border skin sometimes dissappears from AdvancedDataGrid

    [ https://issues.apache.org/jira/browse/FLEX-32721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13669043#comment-13669043 ] 

Justin Mclean commented on FLEX-32721:
--------------------------------------

Confirmed still an issue in Apache Flex 4.9.1 and that suggested fix solves the issue.

As layoutChrome is fairly lightweight it it seem to be called almost every time I think we can do without the check.
                
> Border skin sometimes dissappears from AdvancedDataGrid
> -------------------------------------------------------
>
>                 Key: FLEX-32721
>                 URL: https://issues.apache.org/jira/browse/FLEX-32721
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Advanced Data Grid
>    Affects Versions: Adobe Flex SDK Previous
>         Environment: Affected OS(s): Windows
> Affected OS(s): Windows XP
> Language Found: English
>            Reporter: Adobe JIRA
>            Assignee: Justin Mclean
>            Priority: Minor
>
> Steps to reproduce:
> 1. compile attached mxml
> 2. show and hide dataGrid
>  
>  Actual Results:
>  Border goes missing when component re-added to the stage
>  
>  Expected Results:
>  Border does not go missing
>  
>  Workaround (if any):
> override protected function layoutChrome(unscaledWidth:Number, unscaledHeight:Number):void
> {
> 	super.layoutChrome( unscaledWidth, unscaledHeight );
> 	
> 	_layoutChromeCalled = true;
> }
> override protected function updateDisplayList( w : Number, h : Number ) : void
> {
> 	_layoutChromeCalled = false;
> 	
> 	super.updateDisplayList( w, h );
> 	
> 	if( !_layoutChromeCalled )layoutChrome( w, h )
> }
> Explanation:
> When the ADG is re-added to the stage ScrollControlBase.styleChanged is called with styleProp == null. This throws away the border and creates a new one. createBorder calls invalidateDisplayList.
> When updateDisplayList is called AdvancedListBase.updateDisplayList returns without calling super.updateDisplayList as the size of the component has not changed and none of the other conditions evaluate to true. ScrollControlBase.updateDisplayList, which is not called in this case would call layoutChrome which would correctly size the border.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira