I will put the code at the bottom so it's easier to read. In EXT 2.5, the MenuSelected event was always hit just once when the user clicked on a menu item. Now it is hit twice, causing the user to see a complete grid filled, then a flicker and a blank screen before seeing it filled a second time.

I realize you might be in the dark somewhat as to how this is occurring, and the app is too large and complex to create a "simple" example of the issue as simple examples usually don't misbehave. I'm just hoping you might have an educated guess as to where we should look, or that this code is not compliant with EXT 5.1.

Thanks, code below:

Ext.define('Spotlight.controller.Menu', {
    extend: 'Spotlight.controller.Base',

    refs: [
       {
           ref: 'menuTree',
           selector: 'treepanel#panel-menu'
       },
    ],

    init: function () {
        
        
        this.listen({

            controller: {},

            component: {

                '#panel-menu': {
                    afterrender: this.expandMenu,

                    afteritemexpand: this.selectDefault,
                    
                    select: this.menuSelected,

                    itemclick: this.menuSelected,

                    beforeselect: this.beforeselection,
                }
            }
        })
    },


    /* UI Component Events */

    expandMenu: function (menu, eOpts) {
        menu.expandAll();
    },

    selectDefault: function (node, index, item, eOpts) {
        debugger;
        if (node.data.id == 8 || node.data.text == 'MRP Actions') {
            if (App.txtDept.getValue() == 'SUPPLIER') {
                var defaultNode = this.getMenuTree().getStore().getRootNode().findChild("id", "31", true);
                this.getMenuTree().getSelectionModel().select(defaultNode, true);
            }
            else {
                var defaultNode = this.getMenuTree().getStore().getRootNode().findChild("id", "8", true);
                this.getMenuTree().getSelectionModel().select(defaultNode, true);
            }
        }
    },

    menuSelected: function (menu, record, index, eOpts) {
        
        if (!record.data.leaf) return;
        //this.fireEvent('ViewSelected', record.data);
        //this.application.getPurchasingController().fireEvent('viewSelected', record.data)
        localStorage.removeItem('metachange'
        );
        //Event bus is not working. calling directly
        this.application.getPurchasingController().ViewSelected(record.data);
    },

    beforeselection: function (menu, record, index, eOpts) {
        if (record.data.leaf)
            return true;

        return false;
}

});