Opened 14 years ago

Closed 14 years ago

Last modified 12 years ago

#620 closed defect (fixed)

tooltip does not show up, when it is inside a scrolling div

Reported by: anonymous Owned by: anonymous
Priority: high Milestone:
Component: General Version: 0.2
Keywords: Cc:
Blocked By: Blocking:

Description

For full discussion see the the Dojo-interest list.

It looks like the problem is not with the hitch() line -as Brian Duchek mentioned on mail list-, but in the fact that the show method gets dynamically scheduled/unscheduled, and for some reason the scolling makest it unscheduled. So temporarily here's dumb fix I've done - good until the experts fix it-, if you change the onMouseMove() where the showTimer gets removed to:

onMouseMove: function(e) {
        this.mouseX = e.pageX || e.clientX + document.body.scrollLeft;
        this.mouseY = e.pageY || e.clientY + document.body.scrollTop;

        if(dojo.html.overElement(this.connectNode, e) || dojo.html.overElement(this.domNode, e)) {
            // If the tooltip has been scheduled to be erased, cancel that timer
            // since we are hovering over element/tooltip again
            if(this.hideTimer) {
                clearTimeout(this.hideTimer);
                delete this.hideTimer;
            }
        } else {
            // mouse has been moved off the element/tooltip
            // note: can't use onMouseOut to detect this because the "explode" effect causes
            // spurious onMouseOut/onMouseOver events (due to interference from outline)
          
           //// !!!! BUG FIX for tooltip does not show !!!!//   
           /*
            if(this.showTimer){
                clearTimeout(this.showTimer);
                delete this.showTimer;
            }
            */
            if((this.state=="displaying"||this.state=="displayed") && !this.hideTimer){
                this.hideTimer = setTimeout(dojo.lang.hitch(this, "hide"), this.hideDelay);
            }
        }
    },

The fix is to comment out the the clearTimeout call in the middle. It looks like working fine now.

Regards, Zoltan Luspai

Change History (3)

comment:1 Changed 14 years ago by alex

Milestone: 0.3.1

comment:2 Changed 14 years ago by bill

Milestone: 0.3.10.3release
Resolution: fixed
Status: newclosed

OK, this should be working now (I think). The timer was getting cancelled because the code calculated that you had moved the mouse off of the target object, even though in actuality you were still mousing over the target object. Try it again please.

comment:3 Changed 12 years ago by (none)

Milestone: 0.3release

Milestone 0.3release deleted

Note: See TracTickets for help on using tickets.