Sorry, should have posted a possible fix too.
Try:
Code:
Ext.define('Blah.overrides.LoadMask', {
override: 'Ext.LoadMask',
/**
* Fix for issue reported here: http://www.sencha.com/forum/showthread.php?252789-4.1.3-LoadMask.setZIndex-can-exception-in-IE8
*/
getMaskEl: function(){
var me = this,
zIndex;
if (!me.maskEl) {
zIndex = me.el.getStyle('zIndex');
me.maskEl = me.el.insertSibling({
cls: me.maskCls,
style: {
// SEM FIX
// Only minus 2 here if zIndex is a number, else just use zIndex (e.g. "auto")
zIndex: !isNaN(parseInt(zIndex, 10)) ? zIndex - 2 : zIndex
// SEM FIX
}
}, 'before');
}
return me.maskEl;
},
/**
* Fix for issue reported here: http://www.sencha.com/forum/showthread.php?252789-4.1.3-LoadMask.setZIndex-can-exception-in-IE8
*/
setZIndex: function(index) {
var me = this,
owner = me.activeOwner,
ownerZIndex;
if (owner) {
// it seems silly to add 1 to have it subtracted in the call below,
// but this allows the x-mask el to have the correct z-index (same as the component)
// so instead of directly changing the zIndexStack just get the z-index of the owner comp
// <Westyfix>
ownerZIndex = parseInt(owner.el.getStyle('zIndex'), 10);
if (!isNaN(ownerZIndex)) {
index = ownerZIndex + 1;
}
// </Westyfix>
}
me.getMaskEl().setStyle('zIndex', index - 1);
return me.mixins.floating.setZIndex.apply(me, arguments);
}
});
And
Code:
Ext.define('Blah.overrides.ZIndexManager', {
override: 'Ext.ZIndexManager',
/**
* Fix for issue reported here: http://www.sencha.com/forum/showthread.php?252789-4.1.3-LoadMask.setZIndex-can-exception-in-IE8
* Also see COM-1326.
*/
_showModalMask: function(comp) {
var me = this,
zIndex = comp.el.getStyle('zIndex'),
maskTarget = comp.floatParent ? comp.floatParent.getTargetEl() : comp.container,
viewSize = maskTarget.getBox();
// SEM FIX
// If the zIndex is a string (e.g. "auto") then don't do anything with zIndex,
// otherwise minus 4 as before...
if (!isNaN(parseInt(zIndex, 10))) {
zIndex -= 4;
}
// SEM FIX
if (maskTarget.dom === document.body) {
viewSize.height = Math.max(document.body.scrollHeight, Ext.dom.Element.getDocumentHeight());
viewSize.width = Math.max(document.body.scrollWidth, Ext.dom.Element.getDocumentWidth());
}
if (!me.mask) {
if (Ext.isIE6) {
me.maskShim = Ext.getBody().createChild({
tag: 'iframe',
cls : Ext.baseCSSPrefix + 'shim ' + Ext.baseCSSPrefix + 'mask-shim'
});
me.maskShim.setVisibilityMode(Ext.Element.DISPLAY);
}
me.mask = Ext.getBody().createChild({
cls: Ext.baseCSSPrefix + 'mask'
});
me.mask.setVisibilityMode(Ext.Element.DISPLAY);
me.mask.on('click', me._onMaskClick, me);
}
if (me.maskShim) {
me.maskShim.setStyle('zIndex', zIndex);
me.maskShim.show();
me.maskShim.setBox(viewSize);
}
me.mask.maskTarget = maskTarget;
me.mask.setStyle('zIndex', zIndex);
// setting mask box before showing it in an IE7 strict iframe within a quirks page
// can cause body scrolling [EXTJSIV-6219]
me.mask.show();
me.mask.setBox(viewSize);
}
});
These are 4.1.3 overrides, so may want to check against whatever version you are using, that the code is still the same.
Hope this helps. Apologies if I missed an override...