diff --git a/tests/visual/mouse/mouse_ticket_6946.html b/tests/visual/mouse/mouse_ticket_6946.html
new file mode 100644
index 0000000000..0851d4d191
--- /dev/null
+++ b/tests/visual/mouse/mouse_ticket_6946.html
@@ -0,0 +1,67 @@
+
+
+
+
+ Test for Issue #6946
+
+
+
+
+
+
+
+
+
+
+ Test for Issue #6946
+ Use the following list to test the steps listed below:
+
+
+ Expected
+
+ - Drag an item to a new position in the list and release.
+ - The click event should be received (appropriately suppressed by jQuery UI).
+ - Click the same item.
+ - The click event should be received.
+ - Click the same item again.
+ - The click event should be received.
+
+ Experienced (Gecko/Opera)
+
+ - Drag an item to a new position in the list and release.
+ - The click event is not received (never sent by browser).
+ - Click the same item.
+ - The click event is not received (erroneously suppressed by jQuery UI).
+ - Click the same item again.
+ - The click event is finally received.
+
+
+
+
\ No newline at end of file
diff --git a/ui/jquery.ui.mouse.js b/ui/jquery.ui.mouse.js
index f5e8b58c02..bfe4a75782 100644
--- a/ui/jquery.ui.mouse.js
+++ b/ui/jquery.ui.mouse.js
@@ -75,6 +75,11 @@ $.widget("ui.mouse", {
}
}
+ // Click event may never have fired (Gecko & Opera)
+ if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {
+ $.removeData(event.target, this.widgetName + '.preventClickEvent');
+ }
+
// these delegates are required to keep context
this._mouseMoveDelegate = function(event) {
return self._mouseMove(event);