Skip to content

Commit

Permalink
Fix issue Morgul#14
Browse files Browse the repository at this point in the history
Fix issue Morgul#14 - apply placement classes prior to tooltip placement - so calculated width is correct.
  • Loading branch information
YuraDubensky authored Feb 22, 2018
1 parent 0b2adca commit cf59717
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions src/tooltip/tooltip.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,21 +161,24 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s

if (!positionTimeout) {
positionTimeout = $timeout(function() {
var ttPosition = $position.positionElements(element, tooltip, ttScope.placement, appendToBody);
var initialHeight = angular.isDefined(tooltip.offsetHeight) ? tooltip.offsetHeight : tooltip.prop('offsetHeight');
var elementPos = appendToBody ? $position.offset(element) : $position.position(element);
tooltip.css({ top: ttPosition.top + 'px', left: ttPosition.left + 'px' });
var placementClasses = ttPosition.placement.split('-');

if (!tooltip.hasClass(placementClasses[0])) {
var placementClasses = $position.parsePlacement(ttScope.placement);
var placement = placementClasses[1] === 'center' ? placementClasses[0] : placementClasses[0] + '-' + placementClasses[1];

// need to add classes prior to placement to allow correct tooltip width calculations
if (!tooltip.hasClass(placementClasses[0])) {
tooltip.removeClass(lastPlacement.split('-')[0]);
tooltip.addClass(placementClasses[0]);
}

if (!tooltip.hasClass(options.placementClassPrefix + ttPosition.placement)) {
if (!tooltip.hasClass(options.placementClassPrefix + placement)) {
tooltip.removeClass(options.placementClassPrefix + lastPlacement);
tooltip.addClass(options.placementClassPrefix + ttPosition.placement);
tooltip.addClass(options.placementClassPrefix + placement);
}

var ttPosition = $position.positionElements(element, tooltip, ttScope.placement, appendToBody);
var initialHeight = angular.isDefined(tooltip.offsetHeight) ? tooltip.offsetHeight : tooltip.prop('offsetHeight');
var elementPos = appendToBody ? $position.offset(element) : $position.position(element);
tooltip.css({ top: ttPosition.top + 'px', left: ttPosition.left + 'px' });

adjustmentTimeout = $timeout(function() {
var currentHeight = angular.isDefined(tooltip.offsetHeight) ? tooltip.offsetHeight : tooltip.prop('offsetHeight');
Expand Down

0 comments on commit cf59717

Please sign in to comment.