From 57768d7ea9486f9fcf83701131880405e2fc01cf Mon Sep 17 00:00:00 2001
From: fat <jacobthornton@gmail.com>
Date: Wed, 17 Jul 2013 23:01:33 -0700
Subject: [PATCH] fix #7660

---
 js/modal.js            | 11 ++++++-----
 js/tests/unit/modal.js | 19 +++++++++++++++++++
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/js/modal.js b/js/modal.js
index 7433de4c8e..43e961baa9 100644
--- a/js/modal.js
+++ b/js/modal.js
@@ -160,11 +160,12 @@
       this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
         .appendTo(document.body)
 
-      this.$backdrop.click(
-        this.options.backdrop == 'static' ?
-          $.proxy(this.$element[0].focus, this.$element[0])
-        : $.proxy(this.hide, this)
-      )
+      this.$element.on('click', $.proxy(function (e) {
+        if (e.target !== e.currentTarget) return
+        this.options.backdrop == 'static'
+          ? this.$element[0].focus.call(this.$element[0])
+          : this.hide.call(this)
+      }, this))
 
       if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
 
diff --git a/js/tests/unit/modal.js b/js/tests/unit/modal.js
index 9187b5e23a..90762ea901 100644
--- a/js/tests/unit/modal.js
+++ b/js/tests/unit/modal.js
@@ -134,4 +134,23 @@ $(function () {
           })
           .modal("show")
       })
+
+      test("should close modal when clicking outside of modal-content", function () {
+        stop()
+        $.support.transition = false
+        var div = $("<div id='modal-test'><div class='contents'></div></div>")
+        div
+          .bind("shown.bs.modal", function () {
+            ok($('#modal-test').length, 'modal insterted into dom')
+            $('.contents').click()
+            ok($('#modal-test').is(":visible"), 'modal visible')
+            $('#modal-test').click()
+          })
+          .bind("hidden.bs.modal", function() {
+            ok(!$('#modal-test').is(":visible"), 'modal hidden')
+            div.remove()
+            start()
+          })
+          .modal("show")
+      })
 })
-- 
GitLab