code: function (type, args, obj) {
              Panel.superclass.configzIndex.call(this, type, args, obj);
  
              if (this.mask || this.cfg.getProperty("modal") === true) {
                  var panelZ = Dom.getStyle(this.element, "zIndex");
                  if (!panelZ || isNaN(panelZ)) {
                      panelZ = 0;
                  }
  
                  if (panelZ === 0) {
                      // Recursive call to configzindex (which should be stopped
                      // from going further because panelZ should no longer === 0)
                      this.cfg.setProperty("zIndex", 1);
                  } else {
                      this.stackMask();
                  }
              }
          }
docs: The default event handler fired when the "zIndex" property is changed.
  @method configzIndex
  @param {String} type The CustomEvent type (usually the property name)
  @param {Object[]} args The CustomEvent arguments. For configuration
  handlers, args[0] will equal the newly applied value for the property.
  @param {Object} obj The scope object. For configuration handlers,
  this will usually equal the owner.