X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..2e847cf21b8ab9d15fa167b315ca5b2fa92638fc:/src/widgets/tree/TreeEventModel.js diff --git a/src/widgets/tree/TreeEventModel.js b/src/widgets/tree/TreeEventModel.js index c1b44767..2d8ea428 100644 --- a/src/widgets/tree/TreeEventModel.js +++ b/src/widgets/tree/TreeEventModel.js @@ -1,6 +1,6 @@ /*! - * Ext JS Library 3.1.0 - * Copyright(c) 2006-2009 Ext JS, LLC + * Ext JS Library 3.1.1 + * Copyright(c) 2006-2010 Ext JS, LLC * licensing@extjs.com * http://www.extjs.com/license */ @@ -12,7 +12,7 @@ Ext.tree.TreeEventModel = function(tree){ Ext.tree.TreeEventModel.prototype = { initEvents : function(){ var t = this.tree; - + if(t.trackMouseOver !== false){ t.mon(t.innerCt, { scope: this, @@ -85,12 +85,15 @@ Ext.tree.TreeEventModel.prototype = { }, trackExit : function(e){ - if(this.lastOverNode && !e.within(this.lastOverNode.ui.getEl())){ - this.onNodeOut(e, this.lastOverNode); + if(this.lastOverNode){ + if(this.lastOverNode.ui && !e.within(this.lastOverNode.ui.getEl())){ + this.onNodeOut(e, this.lastOverNode); + } delete this.lastOverNode; Ext.getBody().un('mouseover', this.trackExit, this); this.trackingDoc = false; } + }, delegateClick : function(e, t){ @@ -112,7 +115,7 @@ Ext.tree.TreeEventModel.prototype = { if(this.getNodeTarget(e)){ this.onNodeDblClick(e, this.getNode(e)); }else{ - this.onContainerEvent(e, 'dblclick'); + this.onContainerEvent(e, 'dblclick'); } } }, @@ -122,13 +125,13 @@ Ext.tree.TreeEventModel.prototype = { if(this.getNodeTarget(e)){ this.onNodeContextMenu(e, this.getNode(e)); }else{ - this.onContainerEvent(e, 'contextmenu'); + this.onContainerEvent(e, 'contextmenu'); } } }, - + onContainerEvent: function(e, type){ - this.tree.fireEvent('container' + type, this.tree, e); + this.tree.fireEvent('container' + type, this.tree, e); }, onNodeClick : function(e, node){ @@ -169,7 +172,8 @@ Ext.tree.TreeEventModel.prototype = { }, beforeEvent : function(e){ - if(this.disabled){ + var node = this.getNode(e); + if(this.disabled || !node || !node.ui){ e.stopEvent(); return false; }