annotate src/main/webapp/imageServer/resources/js/jquery-ui-1.10.4/ui/jquery.ui.mouse.js @ 205:f719d73383db

Merge iiif_diva branch 964846688a95cc9b0af5ade832b8d34ae4a4bc21
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Mon, 08 Jul 2019 17:55:14 +0200
parents 764f47286679
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
jurzua
parents:
diff changeset
1 /*!
jurzua
parents:
diff changeset
2 * jQuery UI Mouse 1.10.4
jurzua
parents:
diff changeset
3 * http://jqueryui.com
jurzua
parents:
diff changeset
4 *
jurzua
parents:
diff changeset
5 * Copyright 2014 jQuery Foundation and other contributors
jurzua
parents:
diff changeset
6 * Released under the MIT license.
jurzua
parents:
diff changeset
7 * http://jquery.org/license
jurzua
parents:
diff changeset
8 *
jurzua
parents:
diff changeset
9 * http://api.jqueryui.com/mouse/
jurzua
parents:
diff changeset
10 *
jurzua
parents:
diff changeset
11 * Depends:
jurzua
parents:
diff changeset
12 * jquery.ui.widget.js
jurzua
parents:
diff changeset
13 */
jurzua
parents:
diff changeset
14 (function( $, undefined ) {
jurzua
parents:
diff changeset
15
jurzua
parents:
diff changeset
16 var mouseHandled = false;
jurzua
parents:
diff changeset
17 $( document ).mouseup( function() {
jurzua
parents:
diff changeset
18 mouseHandled = false;
jurzua
parents:
diff changeset
19 });
jurzua
parents:
diff changeset
20
jurzua
parents:
diff changeset
21 $.widget("ui.mouse", {
jurzua
parents:
diff changeset
22 version: "1.10.4",
jurzua
parents:
diff changeset
23 options: {
jurzua
parents:
diff changeset
24 cancel: "input,textarea,button,select,option",
jurzua
parents:
diff changeset
25 distance: 1,
jurzua
parents:
diff changeset
26 delay: 0
jurzua
parents:
diff changeset
27 },
jurzua
parents:
diff changeset
28 _mouseInit: function() {
jurzua
parents:
diff changeset
29 var that = this;
jurzua
parents:
diff changeset
30
jurzua
parents:
diff changeset
31 this.element
jurzua
parents:
diff changeset
32 .bind("mousedown."+this.widgetName, function(event) {
jurzua
parents:
diff changeset
33 return that._mouseDown(event);
jurzua
parents:
diff changeset
34 })
jurzua
parents:
diff changeset
35 .bind("click."+this.widgetName, function(event) {
jurzua
parents:
diff changeset
36 if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) {
jurzua
parents:
diff changeset
37 $.removeData(event.target, that.widgetName + ".preventClickEvent");
jurzua
parents:
diff changeset
38 event.stopImmediatePropagation();
jurzua
parents:
diff changeset
39 return false;
jurzua
parents:
diff changeset
40 }
jurzua
parents:
diff changeset
41 });
jurzua
parents:
diff changeset
42
jurzua
parents:
diff changeset
43 this.started = false;
jurzua
parents:
diff changeset
44 },
jurzua
parents:
diff changeset
45
jurzua
parents:
diff changeset
46 // TODO: make sure destroying one instance of mouse doesn't mess with
jurzua
parents:
diff changeset
47 // other instances of mouse
jurzua
parents:
diff changeset
48 _mouseDestroy: function() {
jurzua
parents:
diff changeset
49 this.element.unbind("."+this.widgetName);
jurzua
parents:
diff changeset
50 if ( this._mouseMoveDelegate ) {
jurzua
parents:
diff changeset
51 $(document)
jurzua
parents:
diff changeset
52 .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)
jurzua
parents:
diff changeset
53 .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
jurzua
parents:
diff changeset
54 }
jurzua
parents:
diff changeset
55 },
jurzua
parents:
diff changeset
56
jurzua
parents:
diff changeset
57 _mouseDown: function(event) {
jurzua
parents:
diff changeset
58 // don't let more than one widget handle mouseStart
jurzua
parents:
diff changeset
59 if( mouseHandled ) { return; }
jurzua
parents:
diff changeset
60
jurzua
parents:
diff changeset
61 // we may have missed mouseup (out of window)
jurzua
parents:
diff changeset
62 (this._mouseStarted && this._mouseUp(event));
jurzua
parents:
diff changeset
63
jurzua
parents:
diff changeset
64 this._mouseDownEvent = event;
jurzua
parents:
diff changeset
65
jurzua
parents:
diff changeset
66 var that = this,
jurzua
parents:
diff changeset
67 btnIsLeft = (event.which === 1),
jurzua
parents:
diff changeset
68 // event.target.nodeName works around a bug in IE 8 with
jurzua
parents:
diff changeset
69 // disabled inputs (#7620)
jurzua
parents:
diff changeset
70 elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false);
jurzua
parents:
diff changeset
71 if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
jurzua
parents:
diff changeset
72 return true;
jurzua
parents:
diff changeset
73 }
jurzua
parents:
diff changeset
74
jurzua
parents:
diff changeset
75 this.mouseDelayMet = !this.options.delay;
jurzua
parents:
diff changeset
76 if (!this.mouseDelayMet) {
jurzua
parents:
diff changeset
77 this._mouseDelayTimer = setTimeout(function() {
jurzua
parents:
diff changeset
78 that.mouseDelayMet = true;
jurzua
parents:
diff changeset
79 }, this.options.delay);
jurzua
parents:
diff changeset
80 }
jurzua
parents:
diff changeset
81
jurzua
parents:
diff changeset
82 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
jurzua
parents:
diff changeset
83 this._mouseStarted = (this._mouseStart(event) !== false);
jurzua
parents:
diff changeset
84 if (!this._mouseStarted) {
jurzua
parents:
diff changeset
85 event.preventDefault();
jurzua
parents:
diff changeset
86 return true;
jurzua
parents:
diff changeset
87 }
jurzua
parents:
diff changeset
88 }
jurzua
parents:
diff changeset
89
jurzua
parents:
diff changeset
90 // Click event may never have fired (Gecko & Opera)
jurzua
parents:
diff changeset
91 if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) {
jurzua
parents:
diff changeset
92 $.removeData(event.target, this.widgetName + ".preventClickEvent");
jurzua
parents:
diff changeset
93 }
jurzua
parents:
diff changeset
94
jurzua
parents:
diff changeset
95 // these delegates are required to keep context
jurzua
parents:
diff changeset
96 this._mouseMoveDelegate = function(event) {
jurzua
parents:
diff changeset
97 return that._mouseMove(event);
jurzua
parents:
diff changeset
98 };
jurzua
parents:
diff changeset
99 this._mouseUpDelegate = function(event) {
jurzua
parents:
diff changeset
100 return that._mouseUp(event);
jurzua
parents:
diff changeset
101 };
jurzua
parents:
diff changeset
102 $(document)
jurzua
parents:
diff changeset
103 .bind("mousemove."+this.widgetName, this._mouseMoveDelegate)
jurzua
parents:
diff changeset
104 .bind("mouseup."+this.widgetName, this._mouseUpDelegate);
jurzua
parents:
diff changeset
105
jurzua
parents:
diff changeset
106 event.preventDefault();
jurzua
parents:
diff changeset
107
jurzua
parents:
diff changeset
108 mouseHandled = true;
jurzua
parents:
diff changeset
109 return true;
jurzua
parents:
diff changeset
110 },
jurzua
parents:
diff changeset
111
jurzua
parents:
diff changeset
112 _mouseMove: function(event) {
jurzua
parents:
diff changeset
113 // IE mouseup check - mouseup happened when mouse was out of window
jurzua
parents:
diff changeset
114 if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) {
jurzua
parents:
diff changeset
115 return this._mouseUp(event);
jurzua
parents:
diff changeset
116 }
jurzua
parents:
diff changeset
117
jurzua
parents:
diff changeset
118 if (this._mouseStarted) {
jurzua
parents:
diff changeset
119 this._mouseDrag(event);
jurzua
parents:
diff changeset
120 return event.preventDefault();
jurzua
parents:
diff changeset
121 }
jurzua
parents:
diff changeset
122
jurzua
parents:
diff changeset
123 if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
jurzua
parents:
diff changeset
124 this._mouseStarted =
jurzua
parents:
diff changeset
125 (this._mouseStart(this._mouseDownEvent, event) !== false);
jurzua
parents:
diff changeset
126 (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
jurzua
parents:
diff changeset
127 }
jurzua
parents:
diff changeset
128
jurzua
parents:
diff changeset
129 return !this._mouseStarted;
jurzua
parents:
diff changeset
130 },
jurzua
parents:
diff changeset
131
jurzua
parents:
diff changeset
132 _mouseUp: function(event) {
jurzua
parents:
diff changeset
133 $(document)
jurzua
parents:
diff changeset
134 .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate)
jurzua
parents:
diff changeset
135 .unbind("mouseup."+this.widgetName, this._mouseUpDelegate);
jurzua
parents:
diff changeset
136
jurzua
parents:
diff changeset
137 if (this._mouseStarted) {
jurzua
parents:
diff changeset
138 this._mouseStarted = false;
jurzua
parents:
diff changeset
139
jurzua
parents:
diff changeset
140 if (event.target === this._mouseDownEvent.target) {
jurzua
parents:
diff changeset
141 $.data(event.target, this.widgetName + ".preventClickEvent", true);
jurzua
parents:
diff changeset
142 }
jurzua
parents:
diff changeset
143
jurzua
parents:
diff changeset
144 this._mouseStop(event);
jurzua
parents:
diff changeset
145 }
jurzua
parents:
diff changeset
146
jurzua
parents:
diff changeset
147 return false;
jurzua
parents:
diff changeset
148 },
jurzua
parents:
diff changeset
149
jurzua
parents:
diff changeset
150 _mouseDistanceMet: function(event) {
jurzua
parents:
diff changeset
151 return (Math.max(
jurzua
parents:
diff changeset
152 Math.abs(this._mouseDownEvent.pageX - event.pageX),
jurzua
parents:
diff changeset
153 Math.abs(this._mouseDownEvent.pageY - event.pageY)
jurzua
parents:
diff changeset
154 ) >= this.options.distance
jurzua
parents:
diff changeset
155 );
jurzua
parents:
diff changeset
156 },
jurzua
parents:
diff changeset
157
jurzua
parents:
diff changeset
158 _mouseDelayMet: function(/* event */) {
jurzua
parents:
diff changeset
159 return this.mouseDelayMet;
jurzua
parents:
diff changeset
160 },
jurzua
parents:
diff changeset
161
jurzua
parents:
diff changeset
162 // These are placeholder methods, to be overriden by extending plugin
jurzua
parents:
diff changeset
163 _mouseStart: function(/* event */) {},
jurzua
parents:
diff changeset
164 _mouseDrag: function(/* event */) {},
jurzua
parents:
diff changeset
165 _mouseStop: function(/* event */) {},
jurzua
parents:
diff changeset
166 _mouseCapture: function(/* event */) { return true; }
jurzua
parents:
diff changeset
167 });
jurzua
parents:
diff changeset
168
jurzua
parents:
diff changeset
169 })(jQuery);