From f5ab2c759eb0c36c9f213d7b232394a3a42b9da5 Mon Sep 17 00:00:00 2001 From: Damien Abos Date: Mon, 7 Sep 2015 15:32:34 +0200 Subject: [PATCH 1/2] fix(tooltip): tooltip appears on wrong position by a fraction of a second - Avoid position computation when tooltip is empty - Force visibility to none when resetting style Fixes: #4195 --- src/tooltip/tooltip.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/tooltip/tooltip.js b/src/tooltip/tooltip.js index 864d861afc..954830affe 100644 --- a/src/tooltip/tooltip.js +++ b/src/tooltip/tooltip.js @@ -132,12 +132,13 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position']) var isOpenExp = angular.isDefined(attrs[prefix + 'IsOpen']) ? $parse(attrs[prefix + 'IsOpen']) : false; var positionTooltip = function() { - if (!tooltip) { return; } + // check if tooltip exists and is not empty + if (!tooltip || !tooltip.html()) { return; } if (!positionTimeout) { positionTimeout = $timeout(function() { // Reset the positioning and box size for correct width and height values. - tooltip.css({ top: 0, left: 0, width: 'auto', height: 'auto' }); + tooltip.css({ top: 0, left: 0, width: 'auto', height: 'auto', visibility: 'none' }); var ttBox = $position.position(tooltip); var ttCss = $position.positionElements(element, tooltip, ttScope.placement, appendToBody); From e2972280f91e62bd408e1d03c748cb5348a18c07 Mon Sep 17 00:00:00 2001 From: Damien Abos Date: Mon, 7 Sep 2015 18:03:30 +0200 Subject: [PATCH 2/2] fix(tooltip): wrong position by a fraction of a second - Force hidden visibility at creation time Fixes: #4195 --- src/tooltip/tooltip.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/tooltip/tooltip.js b/src/tooltip/tooltip.js index 954830affe..b6666fd320 100644 --- a/src/tooltip/tooltip.js +++ b/src/tooltip/tooltip.js @@ -110,6 +110,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position']) 'animation="animation" '+ 'is-open="isOpen"'+ 'origin-scope="origScope" '+ + 'style="visibility: hidden"'+ '>'+ ''; @@ -138,7 +139,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position']) if (!positionTimeout) { positionTimeout = $timeout(function() { // Reset the positioning and box size for correct width and height values. - tooltip.css({ top: 0, left: 0, width: 'auto', height: 'auto', visibility: 'none' }); + tooltip.css({ top: 0, left: 0, width: 'auto', height: 'auto', visibility: 'hidden' }); var ttBox = $position.position(tooltip); var ttCss = $position.positionElements(element, tooltip, ttScope.placement, appendToBody); @@ -228,8 +229,6 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position']) ttScope.$apply(); // digest required as $apply is not called } - tooltip.css({ display: 'block', visibility: 'hidden' }); - positionTooltip(); }