-
24 Nov 2010 4:33 AM #1
[OPEN-1420] Ext.TreePanel hovered node flickering
[OPEN-1420] Ext.TreePanel hovered node flickering
Ext version tested:
3.2.1
Adapter used:- ext
css used:- only default ext-all.css
Browser versions tested against:- IE8
Operating System:- WinXP Pro
Description:- Moving your mouse around inside a div.x-tree-node in an Ext.tree.TreePanel causes flickering, because the CSS class .x-tree-node-over is repeatedly removed and added.
Test Case:
Any Ext.tree.TreePanel
Debugging already done:- Ext.tree.TreeNodeUI.onOver() and onOut() are called erroneously while mouse is moved around.
- Reason: Ext.tree.TreeEventModel fails to detect wether the mouse is inside a tree node div.
- Ext.tree.TreeEventModel.getNodeTarget() does not return the node target when hovering over the icon!?
- Seems to me that Ext.tree.TreeEventModel.trackExit() is totally useless and appears to exist to "fix" this very bug.
Possible fix:
Code:Ext.override(Ext.tree.TreeEventModel, { getNodeTarget: function (e) { // why would we want to return the icon here ?? return e.getTarget('.x-tree-node-el', 6); }, delegateOver: function (e, t) { if (!this.beforeEvent(e)) { return; } /*if (Ext.isGecko && !this.trackingDoc) { Ext.getBody().on('mouseover', this.trackExit, this); this.trackingDoc = true; }*/ // huh? if (this.lastEcOver) { this.onIconOut(e, this.lastEcOver); delete this.lastEcOver; } if (e.getTarget('.x-tree-ec-icon', 1)) { this.lastEcOver = this.getNode(e); this.onIconOver(e, this.lastEcOver); } if (t = this.getNodeTarget(e)) { this.onNodeOver(e, this.getNode(e)); } }, delegateOut: function (e, t) { if (!this.beforeEvent(e)) { return; } if (e.getTarget('.x-tree-ec-icon', 1)) { var n = this.getNode(e); this.onIconOut(e, n); if (n == this.lastEcOver) { delete this.lastEcOver; } } if ((t = this.getNodeTarget(e)) && !e.within(t, true, true)) { this.onNodeOut(e, this.getNode(e)); } }, onNodeOver: function (e, node) { if (node == this.lastOverNode) { return; } this.lastOverNode = node; node.ui.onOver(e); }, onNodeOut: function (e, node) { delete this.lastOverNode; node.ui.onOut(e); } });Last edited by Tom23; 24 Nov 2010 at 4:42 AM. Reason: added onNodeOut
Thank you for reporting this bug. We will make it our priority to review this report.
Similar Threads
-
[FIXED] Animations on Android flickering
By mherger in forum Sencha Touch 1.x: BugsReplies: 27Last Post: 6 Jun 2013, 3:50 AM -
[OPEN-1103] IE8 TreePanel flashes when node clicked
By aj3423 in forum Ext 3.x: BugsReplies: 4Last Post: 20 Nov 2012, 1:24 AM -
Need to reload single treepanel node, and treepanel node checkbox error
By sgdevteam in forum Ext 2.x: Help & DiscussionReplies: 2Last Post: 10 Mar 2010, 5:46 PM -
[2.0.1] TreePanel IE6 flickers on node open and close
By The_Jackal in forum Ext GWT: Bugs (2.x)Replies: 3Last Post: 30 Jul 2009, 5:09 PM -
[2.0][OPEN] TreePanel node highlight problem if width is too small
By colinexl in forum Ext 2.x: BugsReplies: 2Last Post: 3 May 2008, 8:47 AM


Reply With Quote