Hi,

Say we have a List using a store that remotely loads a lot of records. If I call load on the store and then call load again before the first load has completed the List is never unmasked. The reason for this is that the List creates a new LoadMask instance in onBeforeLoad. When the store's load is called again, the List's onBeforeLoad again creates a new LoadMask. When the store finishes loading the List's mask is removed by calling setMasked(false). This however only removes the last created mask.

This can be fixed by checking if a mask already exists in onBeforeLoad

Code:
Ext.override(Ext.dataview.DataView,{
			onBeforeLoad: function() {
		        var scrollable = this.getScrollable();
		        if (scrollable) {
		            scrollable.getScroller().stopAnimation();
		        }

		        var loadingText = this.getLoadingText();
		        if (loadingText && !this.getMasked()) {
		            this.setMasked({
		                xtype: 'loadmask',
		                message: loadingText
		            });

		            //disable scorlling while it is masked
		            if (scrollable) {
		                scrollable.getScroller().setDisabled(true);
		            }
		        }

		        this.hideEmptyText();
		    }
		});