Success! Looks like we've fixed this one. According to our records the fix was applied for TOUCH-4116 in a recent build.
  1. #1
    Sencha Premium Member robert_k's Avatar
    Join Date
    Jun 2012
    Posts
    35
    Vote Rating
    1
    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
    35
    Vote Rating
    1
    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
    Gainesville, FL
    Posts
    36,649
    Vote Rating
    817
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      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
    ________________
    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 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
    35
    Vote Rating
    1
    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,661
    Vote Rating
    21
    Jamie Avins is a jewel in the rough 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

Thread Participants: 2

Tags for this Thread