From d740e450aa7bd8a4f254f0268d74636d5920c60a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Scott=20Gonz=C3=A1lez?= Date: Thu, 14 Jun 2012 10:06:21 -0400 Subject: [PATCH] Tooltip: Reposition tracking tooltips when they gain focus. --- ui/jquery.ui.tooltip.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/ui/jquery.ui.tooltip.js b/ui/jquery.ui.tooltip.js index 2c80f328c..5ef5051af 100644 --- a/ui/jquery.ui.tooltip.js +++ b/ui/jquery.ui.tooltip.js @@ -118,8 +118,18 @@ $.widget( "ui.tooltip", { target = $( event ? event.target : this.element ) .closest( this.options.items ); - // if ui-tooltip-id exists, then the tooltip is already open - if ( !target.length || target.data( "ui-tooltip-id" ) ) { + // No element to show a tooltip for + if ( !target.length ) { + return; + } + + // If the tooltip is open and we're tracking then reposition the tooltip. + // This makes sure that a tracking tooltip doesn't obscure a focused element + // if the user was hovering when the element gained focused. + if ( this.options.track && target.data( "ui-tooltip-id" ) ) { + this._find( target ).position( $.extend({ + of: target + }, this.options.position ) ); return; } @@ -250,9 +260,7 @@ $.widget( "ui.tooltip", { target.removeData( "tooltip-open" ); this._off( target, "mouseleave focusout keyup" ); - - // TODO use _off - this.document.unbind( "mousemove.tooltip" ); + this._off( this.document, "mousemove" ); this.closing = true; this._trigger( "close", event, { tooltip: tooltip } ); -- 2.39.5