Skip to content

Commit d23a990

Browse files
Merge pull request #5 from mschlitz-trux/position-tooltip-fixes
Recalculate/last position fix
2 parents 3244596 + ce7322d commit d23a990

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

dist/ui-bootstrap-tpls.js

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5158,10 +5158,11 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
51585158
if (!positionTimeout) {
51595159
positionTimeout = $timeout(function() {
51605160
var placementClasses = $position.parsePlacement(ttScope.placement);
5161-
5161+
51625162
// need to add classes prior to placement to allow correct tooltip size calculations
5163-
if (!tooltip.hasClass(placementClasses[0])) {
5164-
tooltip.removeClass(lastPlacement.split('-')[0]);
5163+
if (!tooltip.hasClass(options.placementClassPrefix + placementClasses[0])) {
5164+
tooltip.removeClass(lastPlacement);
5165+
tooltip.removeClass(options.placementClassPrefix + lastPlacement);
51655166
tooltip.addClass(options.placementClassPrefix + placementClasses[0]);
51665167
}
51675168

@@ -5170,7 +5171,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
51705171
var placement = ttPosition.placement;
51715172

51725173
if (!tooltip.hasClass(options.placementClassPrefix + placement)) {
5173-
tooltip.removeClass(options.placementClassPrefix + lastPlacement);
5174+
tooltip.removeClass(options.placementClassPrefix + placementClasses[0]);
51745175
tooltip.addClass(options.placementClassPrefix + placement);
51755176
}
51765177

@@ -5197,7 +5198,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
51975198
} else if (lastPlacement !== ttPosition.placement) {
51985199
$position.positionArrow(tooltip, ttPosition.placement);
51995200
}
5200-
lastPlacement = ttPosition.placement;
5201+
lastPlacement = placement;
52015202

52025203
positionTimeout = null;
52035204
}, 0, false);
@@ -5684,10 +5685,11 @@ function ($animate, $sce, $compile, $templateRequest) {
56845685
// arrow has space during position measure.
56855686
// tooltip.positionTooltip()
56865687
if (scope.placement) {
5688+
var classPrefix = element.hasClass('popover') ? 'bs-popover-' : 'bs-tooltip-';
56875689
// // There are no top-left etc... classes
56885690
// // in TWBS, so we need the primary position.
56895691
var position = $uibPosition.parsePlacement(scope.placement);
5690-
element.addClass('bs-tooltip-' + position[0]);
5692+
element.addClass(classPrefix + position[0]);
56915693
}
56925694

56935695
if (scope.popupClass) {

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)