Thank you for reporting this bug. We will make it our priority to review this report.
  1. #1
    Ext JS Premium Member
    Join Date
    Aug 2009
    Vote Rating
    Tom23 is on a distinguished road


    Default [OPEN-1420] Ext.TreePanel hovered node flickering

    [OPEN-1420] Ext.TreePanel hovered node flickering

    Ext version tested:

    Adapter used:
    • ext

    css used:
    • only default ext-all.css

    Browser versions tested against:
    • IE8

    Operating System:
    • WinXP Pro

    • 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:
    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)) {
            /*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)) {
            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) {
            this.lastOverNode = node;
        onNodeOut: function (e, node) {
            delete this.lastOverNode;
    Last edited by Tom23; 24 Nov 2010 at 4:42 AM. Reason: added onNodeOut

Similar Threads

  1. [FIXED] Animations on Android flickering
    By mherger in forum Sencha Touch 1.x: Bugs
    Replies: 27
    Last Post: 6 Jun 2013, 3:50 AM
  2. [OPEN-1103] IE8 TreePanel flashes when node clicked
    By aj3423 in forum Ext 3.x: Bugs
    Replies: 3
    Last Post: 18 Nov 2012, 11:08 PM
  3. Need to reload single treepanel node, and treepanel node checkbox error
    By sgdevteam in forum Ext 2.x: Help & Discussion
    Replies: 2
    Last Post: 10 Mar 2010, 5:46 PM
  4. [2.0.1] TreePanel IE6 flickers on node open and close
    By The_Jackal in forum Ext GWT: Bugs (2.x)
    Replies: 3
    Last Post: 30 Jul 2009, 5:09 PM
  5. Replies: 2
    Last Post: 3 May 2008, 8:47 AM
Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi