Merge "$wgUseSquid unused since parent commit (fa1a8d5)"
[lhc/web/wiklou.git] / resources / jquery.ui / jquery.ui.mouse.js
index 871edd8..63f8570 100644 (file)
@@ -1,16 +1,21 @@
 /*!
- * jQuery UI Mouse 1.8.2
+ * jQuery UI Mouse 1.8.20
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Mouse
  *
  * Depends:
  *     jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
+
+var mouseHandled = false;
+$( document ).mouseup( function( e ) {
+       mouseHandled = false;
+});
 
 $.widget("ui.mouse", {
        options: {
@@ -26,8 +31,8 @@ $.widget("ui.mouse", {
                                return self._mouseDown(event);
                        })
                        .bind('click.'+this.widgetName, function(event) {
-                               if(self._preventClickEvent) {
-                                       self._preventClickEvent = false;
+                               if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
+                                   $.removeData(event.target, self.widgetName + '.preventClickEvent');
                                        event.stopImmediatePropagation();
                                        return false;
                                }
@@ -40,13 +45,14 @@ $.widget("ui.mouse", {
        // other instances of mouse
        _mouseDestroy: function() {
                this.element.unbind('.'+this.widgetName);
+               $(document)
+                       .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
+                       .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
        },
 
        _mouseDown: function(event) {
                // don't let more than one widget handle mouseStart
-               // TODO: figure out why we have to use originalEvent
-               event.originalEvent = event.originalEvent || {};
-               if (event.originalEvent.mouseHandled) { return; }
+               if( mouseHandled ) { return };
 
                // we may have missed mouseup (out of window)
                (this._mouseStarted && this._mouseUp(event));
@@ -55,7 +61,9 @@ $.widget("ui.mouse", {
 
                var self = this,
                        btnIsLeft = (event.which == 1),
-                       elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
+                       // event.target.nodeName works around a bug in IE 8 with
+                       // disabled inputs (#7620)
+                       elIsCancel = (typeof this.options.cancel == "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
                if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
                        return true;
                }
@@ -75,6 +83,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);
@@ -86,18 +99,15 @@ $.widget("ui.mouse", {
                        .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
                        .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
-               // preventDefault() is used to prevent the selection of text here -
-               // however, in Safari, this causes select boxes not to be selectable
-               // anymore, so this fix is needed
-               ($.browser.safari || event.preventDefault());
-
-               event.originalEvent.mouseHandled = true;
+               event.preventDefault();
+               
+               mouseHandled = true;
                return true;
        },
 
        _mouseMove: function(event) {
                // IE mouseup check - mouseup happened when mouse was out of window
-               if ($.browser.msie && !event.button) {
+               if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {
                        return this._mouseUp(event);
                }
 
@@ -122,7 +132,11 @@ $.widget("ui.mouse", {
 
                if (this._mouseStarted) {
                        this._mouseStarted = false;
-                       this._preventClickEvent = (event.target == this._mouseDownEvent.target);
+
+                       if (event.target == this._mouseDownEvent.target) {
+                           $.data(event.target, this.widgetName + '.preventClickEvent', true);
+                       }
+
                        this._mouseStop(event);
                }