Skip to content

Commit ce7322d

Browse files
Recalculate/last position fix
- apply proper initial class prefix tooltip vs popover - fix for `lastPlacement` and class handling
1 parent 6aec4eb commit ce7322d

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/tooltip/tooltip.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,11 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
163163
if (!positionTimeout) {
164164
positionTimeout = $timeout(function() {
165165
var placementClasses = $position.parsePlacement(ttScope.placement);
166-
166+
167167
// need to add classes prior to placement to allow correct tooltip size calculations
168-
if (!tooltip.hasClass(placementClasses[0])) {
169-
tooltip.removeClass(lastPlacement.split('-')[0]);
168+
if (!tooltip.hasClass(options.placementClassPrefix + placementClasses[0])) {
169+
tooltip.removeClass(lastPlacement);
170+
tooltip.removeClass(options.placementClassPrefix + lastPlacement);
170171
tooltip.addClass(options.placementClassPrefix + placementClasses[0]);
171172
}
172173

@@ -175,7 +176,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
175176
var placement = ttPosition.placement;
176177

177178
if (!tooltip.hasClass(options.placementClassPrefix + placement)) {
178-
tooltip.removeClass(options.placementClassPrefix + lastPlacement);
179+
tooltip.removeClass(options.placementClassPrefix + placementClasses[0]);
179180
tooltip.addClass(options.placementClassPrefix + placement);
180181
}
181182

@@ -202,7 +203,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
202203
} else if (lastPlacement !== ttPosition.placement) {
203204
$position.positionArrow(tooltip, ttPosition.placement);
204205
}
205-
lastPlacement = ttPosition.placement;
206+
lastPlacement = placement;
206207

207208
positionTimeout = null;
208209
}, 0, false);
@@ -689,10 +690,11 @@ function ($animate, $sce, $compile, $templateRequest) {
689690
// arrow has space during position measure.
690691
// tooltip.positionTooltip()
691692
if (scope.placement) {
693+
var classPrefix = element.hasClass('popover') ? 'bs-popover-' : 'bs-tooltip-';
692694
// // There are no top-left etc... classes
693695
// // in TWBS, so we need the primary position.
694696
var position = $uibPosition.parsePlacement(scope.placement);
695-
element.addClass('bs-tooltip-' + position[0]);
697+
element.addClass(classPrefix + position[0]);
696698
}
697699

698700
if (scope.popupClass) {

0 commit comments

Comments
 (0)