Success! Looks like we've fixed this one. According to our records the fix was applied for EXTJSIV-9038 in 4.2.0 Sprint 4 (GA).
  1. #1
    Sencha User Daniil's Avatar
    Join Date
    Jun 2010
    Location
    Saint-Petersburg, Russia
    Posts
    678
    Vote Rating
    62
    Daniil is a jewel in the rough Daniil is a jewel in the rough Daniil is a jewel in the rough Daniil is a jewel in the rough

      0  

    Default [4.2.0 RC] Expanding a tree node causes multiple layouts

    [4.2.0 RC] Expanding a tree node causes multiple layouts


    REQUIRED INFORMATION

    Ext version tested:
    • Ext 4.2.0 RC
    Browser versions tested against:
    • IE9
    • Chrome
    DOCTYPE tested against:
    • <!DOCTYPE html>
    Description:
    • Expanding a tree node causes multiple layouts. Expanding a node with children causes two layouts. Expanding a non-leaf node without children causes four layouts. It seems too many and possibly can cause performance issues.
    Steps to reproduce the problem:
    • Expand nodes
    The result that was expected:
    • A single layout
    The result that occurs instead:
    • Two or four layouts
    Test Case:

    Code:
    <!DOCTYPE html>
    <html>
    <head>
        <title>Expanding a node causes multiple layouts</title>
    
        <link rel="stylesheet" href="../resources/css/ext-all.css" />
    
        <script src="../ext-all-debug.js"></script>
    
        <script>
            Ext.onReady(function () {
                var children = [];
                for (var i = 0; i < 50; i++) {
                    children.push({
                        text: "SubNode" + i
                    });
                }
                var tree = Ext.create("Ext.tree.Panel", {
                    renderTo: Ext.getBody(),
                    height: 450,
                    width: 300,
                    root: {
                        text: "Root",
                        children: children
                    },
                    listeners: {
                        afterlayout: {
                            fn: function () {
                                console.log('layout');
                            }
                        }
                    }
                });
            });
        </script>
    </head>
    <body>
    </body>
    </html>
    Ext.NET - ASP.NET for Ext JS
    MVC and WebForms
    Examples | Twitter

  2. #2
    Sencha - Community Support Team mankz's Avatar
    Join Date
    Nov 2007
    Location
    Helsingborg, Sweden
    Posts
    2,454
    Vote Rating
    48
    mankz is a jewel in the rough mankz is a jewel in the rough mankz is a jewel in the rough

      0  

    Default


    We've seen this for a while too, hacking past it using this override:

    Code:
    this.override({
                    expand : function () {
                        Ext.suspendLayouts();
                        this.callParent(arguments);
                        Ext.resumeLayouts();
                    }
                });

  3. #3
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Location
    Notts/Redwood City
    Posts
    30,458
    Vote Rating
    20
    Animal is a jewel in the rough Animal is a jewel in the rough Animal is a jewel in the rough

      0  

    Default


    Thanks for the report! I have opened a bug in our bug tracker..... for the 4.2.1 release