As the title says, tooltips are no longer displayed incase you enable a disabled button programmatically.
Ext.define('X', {
    extend: 'Ext.panel.Panel',

    initComponent: function() {
        this.tbar = [{
            text: 'Foo',
            disabled: true,
            itemId: 'fooBtn',
            tooltip: 'FooTip',
            handler: function(btn){
            scope: this
            text: 'Bar',
            tooltip: 'BarTip',
            handler: function(btn) {
            scope: this

    name: 'Fiddle',

    launch: function() {
        new X({
            renderTo: document.body,
            title: 'Foo',
            width: 200,
            height: 200

The reason why this happens is the buttons setTooltip method still assuming it is disabled (as the enable function sets the tooltip first) so it adds the tooltip attribute to the toolTipEl instead of the actual button.

if (me.disabled) {
    targetEl = me.tooltipEl;
Since the tooltipEl is display none (unless the button is disabled) it will never show up. Setting it to display block leads to regular active buttons cannot be clicked anymore for obvious reasons.
The solution should be setting disabled = true before actually setting the tooltip so the tip gets rendered to the proper element.