X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6a7e4474cba9d8be4b2ec445e10f1691f7277c50:/src/util/ClickRepeater.js diff --git a/src/util/ClickRepeater.js b/src/util/ClickRepeater.js index 0905a790..07b4d8cc 100644 --- a/src/util/ClickRepeater.js +++ b/src/util/ClickRepeater.js @@ -1,6 +1,6 @@ /*! - * Ext JS Library 3.1.1 - * Copyright(c) 2006-2010 Ext JS, LLC + * Ext JS Library 3.2.0 + * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ @@ -87,13 +87,16 @@ Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, { enable: function(){ if(this.disabled){ this.el.on('mousedown', this.handleMouseDown, this); + if (Ext.isIE){ + this.el.on('dblclick', this.handleDblClick, this); + } if(this.preventDefault || this.stopDefault){ this.el.on('click', this.eventOptions, this); } } this.disabled = false; }, - + /** * Disables the repeater and stops events from firing. */ @@ -108,31 +111,39 @@ Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, { } this.disabled = true; }, - + /** * Convenience function for setting disabled/enabled by boolean. * @param {Boolean} disabled */ setDisabled: function(disabled){ - this[disabled ? 'disable' : 'enable'](); + this[disabled ? 'disable' : 'enable'](); }, - + eventOptions: function(e){ if(this.preventDefault){ e.preventDefault(); } if(this.stopDefault){ e.stopEvent(); - } + } }, - + // private destroy : function() { this.disable(true); Ext.destroy(this.el); this.purgeListeners(); }, - + + handleDblClick : function(){ + clearTimeout(this.timer); + this.el.blur(); + + this.fireEvent("mousedown", this); + this.fireEvent("click", this); + }, + // private handleMouseDown : function(){ clearTimeout(this.timer); @@ -148,10 +159,10 @@ Ext.extend(Ext.util.ClickRepeater, Ext.util.Observable, { this.fireEvent("mousedown", this); this.fireEvent("click", this); -// Do not honor delay or interval if acceleration wanted. + // Do not honor delay or interval if acceleration wanted. if (this.accelerate) { this.delay = 400; - } + } this.timer = this.click.defer(this.delay || this.interval, this); },