From 117f65d43108d5d7ff1c5011f0b8b61f7ef3b9dd Mon Sep 17 00:00:00 2001
From: Jon Stevens <latchkey@gmail.com>
Date: Fri, 20 Jul 2012 09:47:12 -0700
Subject: [PATCH] on destroy, also hide. issue #3880, pull #4104

---
 docs/templates/pages/javascript.mustache | 4 ++--
 js/bootstrap-popover.js                  | 1 +
 js/bootstrap-tooltip.js                  | 1 +
 js/tests/unit/bootstrap-popover.js       | 2 ++
 js/tests/unit/bootstrap-tooltip.js       | 2 ++
 5 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/docs/templates/pages/javascript.mustache b/docs/templates/pages/javascript.mustache
index 49d065c326..4ec8a5f517 100644
--- a/docs/templates/pages/javascript.mustache
+++ b/docs/templates/pages/javascript.mustache
@@ -786,7 +786,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
         <p>{{_i}}Toggles an element's tooltip.{{/i}}</p>
         <pre class="prettyprint linenums">$('#element').tooltip('toggle')</pre>
         <h4>.tooltip('destroy')</h4>
-        <p>{{_i}}Destroys an element's tooltip.{{/i}}</p>
+        <p>{{_i}}Hides and destroys an element's tooltip.{{/i}}</p>
         <pre class="prettyprint linenums">$('#element').tooltip('destroy')</pre>
       </section>
 
@@ -947,7 +947,7 @@ $('a[data-toggle="tab"]').on('shown', function (e) {
         <p>{{_i}}Toggles an elements popover.{{/i}}</p>
         <pre class="prettyprint linenums">$('#element').popover('toggle')</pre>
         <h4>.popover('destroy')</h4>
-        <p>{{_i}}Destroys an element's popover.{{/i}}</p>
+        <p>{{_i}}Hides and destroys an element's popover.{{/i}}</p>
         <pre class="prettyprint linenums">$('#element').popover('destroy')</pre>
       </section>
 
diff --git a/js/bootstrap-popover.js b/js/bootstrap-popover.js
index 845108b9ba..57420bb5d9 100644
--- a/js/bootstrap-popover.js
+++ b/js/bootstrap-popover.js
@@ -72,6 +72,7 @@
     }
 
   , destroy: function () {
+      this.hide()
       this.$element.off(this.options.ns).removeData('popover')
     }
 
diff --git a/js/bootstrap-tooltip.js b/js/bootstrap-tooltip.js
index 02f84d470d..f22aa8e643 100644
--- a/js/bootstrap-tooltip.js
+++ b/js/bootstrap-tooltip.js
@@ -236,6 +236,7 @@
     }
 
   , destroy: function () {
+      this.hide()
       this.$element.off(this.options.ns).removeData('tooltip')
     }
 
diff --git a/js/tests/unit/bootstrap-popover.js b/js/tests/unit/bootstrap-popover.js
index 290be827ff..daffe215c9 100644
--- a/js/tests/unit/bootstrap-popover.js
+++ b/js/tests/unit/bootstrap-popover.js
@@ -96,7 +96,9 @@ $(function () {
         ok(popover.data('popover'), 'popover has data')
         ok(popover.data('events').mouseover && popover.data('events').mouseout, 'popover has hover event')
         ok(popover.data('events').click[0].namespace == 'foo', 'popover has extra click.foo event')
+        popover.popover('show')
         popover.popover('destroy')
+        ok(!popover.hasClass('in'), 'popover is hidden')
         ok(!popover.data('popover'), 'popover does not have data')
         ok(popover.data('events').click[0].namespace == 'foo', 'popover still has click.foo')
         ok(!popover.data('events').mouseover && !popover.data('events').mouseout, 'popover does not have any events')
diff --git a/js/tests/unit/bootstrap-tooltip.js b/js/tests/unit/bootstrap-tooltip.js
index 66bbeac7ec..2eb8c8f7c9 100644
--- a/js/tests/unit/bootstrap-tooltip.js
+++ b/js/tests/unit/bootstrap-tooltip.js
@@ -133,7 +133,9 @@ $(function () {
         ok(tooltip.data('tooltip'), 'tooltip has data')
         ok(tooltip.data('events').mouseover && tooltip.data('events').mouseout, 'tooltip has hover event')
         ok(tooltip.data('events').click[0].namespace == 'foo', 'tooltip has extra click.foo event')
+        tooltip.tooltip('show')
         tooltip.tooltip('destroy')
+        ok(!tooltip.hasClass('in'), 'tooltip is hidden')
         ok(!tooltip.data('tooltip'), 'tooltip does not have data')
         ok(tooltip.data('events').click[0].namespace == 'foo', 'tooltip still has click.foo')
         ok(!tooltip.data('events').mouseover && !tooltip.data('events').mouseout, 'tooltip does not have any events')
-- 
GitLab