Success! Looks like we've fixed this one. According to our records the fix was applied for TOUCH-4116 in Sprint 32.
  1. #1
    Sencha Premium Member robert_k's Avatar
    Join Date
    Jun 2012
    Posts
    32
    Vote Rating
    0
    robert_k is on a distinguished road

      0  

    Exclamation ST v2.1.1 - Ext.tab.Panel's delegateListeners won't fire!

    ST v2.1.1 - Ext.tab.Panel's delegateListeners won't fire!


    In our application we use the ability to disable a tab by disabling its panel quite frequently. I've been upgrading the same application from 2.0.3 to 2.1.1 and I've noticed that I can no longer disable tabs. In fact, when checking "getDisabled()" on the active panel it says "true" but the class wasn't applied and I can select the tab.

    Not sure exactly where the bug resides, though I'm fairly sure it isn't with Ext.tab.Tab or with Ext.tab.Panel.
    Last edited by robert_k; 12 Mar 2013 at 6:43 AM. Reason: Clarified title

  2. #2
    Sencha Premium Member robert_k's Avatar
    Join Date
    Jun 2012
    Posts
    32
    Vote Rating
    0
    robert_k is on a distinguished road

      0  

    Exclamation Found why the bug happens

    Found why the bug happens


    I'm still not sure what's causing the error, but the problem is with "delegateListeners" for Ext.tab.Panel not being triggered. I can manually enable/disable a tab and it works properly, but if I enable/disable the panel the delegateListeners won't fire. The same happens for hidden.

    I don't know that this issue is unique to Ext.tab.Panel, so this could be causing problems elsewhere (and probably is).

  3. #3
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    St. Louis, MO
    Posts
    33,599
    Vote Rating
    435
    mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of

      0  

    Default


    Looks like it needs to be removed as it's no longer used at all. delegateListeners is marked as private so looks like it is going away.
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    http://www.JSONPLint.com - Source to lint your JSONP!

    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is almost in print!

    When posting code, please use BBCode's CODE tags.

  4. #4
    Sencha Premium Member robert_k's Avatar
    Join Date
    Jun 2012
    Posts
    32
    Vote Rating
    0
    robert_k is on a distinguished road

      0  

    Default


    Okay, but that reinforces the problem: there's nothing handling hidden/disabled/docked/floating property changes and synchronizing them with the tab button. This is in the current 2.1.1 release version no less. I can work around this by enabling/disabling the panel.tab property.

    If this were really "going away" it should either: work and show a deprecation notice, or be completely replaced.

  5. #5
    Sencha - Sencha Touch Dev Team Jamie Avins's Avatar
    Join Date
    Mar 2007
    Location
    Redwood City, California
    Posts
    3,651
    Vote Rating
    14
    Jamie Avins is a jewel in the rough Jamie Avins is a jewel in the rough Jamie Avins is a jewel in the rough

      0  

    Default


    This is indeed a mistake to still have the delegateListeners object in place. It has been removed and the listener has been put back in place in the initialize method:

    Code:
        initialize: function() {
            this.callParent();
    
            this.on({
                order: 'before',
                activetabchange: 'doTabChange',
                delegate: '> tabbar',
                scope   : this
            });
    
            this.on({
                disabledchange: 'onItemDisabledChange',
                delegate: '> component',
                scope   : this
            });
        },

    Sencha Inc

    Jamie Avins

    @jamieavins

Tags for this Thread