summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/MochiKit/Signal.js
Unidiff
Diffstat (limited to 'frontend/gamma/js/MochiKit/Signal.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/js/MochiKit/Signal.js47
1 files changed, 30 insertions, 17 deletions
diff --git a/frontend/gamma/js/MochiKit/Signal.js b/frontend/gamma/js/MochiKit/Signal.js
index 7df5619..11590c1 100644
--- a/frontend/gamma/js/MochiKit/Signal.js
+++ b/frontend/gamma/js/MochiKit/Signal.js
@@ -9,5 +9,5 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
9***/ 9***/
10 10
11MochiKit.Base._module('Signal', '1.5', ['Base', 'DOM', 'Style']); 11MochiKit.Base.module(MochiKit, 'Signal', '1.5', ['Base', 'DOM']);
12 12
13MochiKit.Signal._observers = []; 13MochiKit.Signal._observers = [];
@@ -267,8 +267,9 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
267 if (this.type() && ( 267 if (this.type() && (
268 this.type().indexOf('mouse') === 0 || 268 this.type().indexOf('mouse') === 0 ||
269 this.type().indexOf('drag') === 0 ||
269 this.type().indexOf('click') != -1 || 270 this.type().indexOf('click') != -1 ||
270 this.type() == 'contextmenu')) { 271 this.type() == 'contextmenu')) {
271 272
272 m.client = new MochiKit.Style.Coordinates(0, 0); 273 m.client = { x: 0, y: 0 };
273 if (e.clientX || e.clientY) { 274 if (e.clientX || e.clientY) {
274 m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX; 275 m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX;
@@ -276,5 +277,5 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
276 } 277 }
277 278
278 m.page = new MochiKit.Style.Coordinates(0, 0); 279 m.page = { x: 0, y: 0 };
279 if (e.pageX || e.pageY) { 280 if (e.pageX || e.pageY) {
280 m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX; 281 m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX;
@@ -338,5 +339,5 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
338 } 339 }
339 if (this.type() == 'mousewheel') { 340 if (this.type() == 'mousewheel') {
340 m.wheel = new MochiKit.Style.Coordinates(0, 0); 341 m.wheel = { x: 0, y: 0 };
341 if (e.wheelDeltaX || e.wheelDeltaY) { 342 if (e.wheelDeltaX || e.wheelDeltaY) {
342 m.wheel.x = e.wheelDeltaX / -40 || 0; 343 m.wheel.x = e.wheelDeltaX / -40 || 0;
@@ -673,4 +674,16 @@ MochiKit.Base.update(MochiKit.Signal, {
673 }, 674 },
674 675
676 /** @id MochiKit.Signal.connectOnce */
677 connectOnce: function (src, sig, objOrFunc/* optional */, funcOrStr) {
678 var self = MochiKit.Signal;
679 var ident1 = self.connect(src, sig, objOrFunc, funcOrStr);
680 var ident2;
681 ident2 = self.connect(src, sig, function() {
682 self.disconnect(ident1);
683 self.disconnect(ident2);
684 });
685 return ident1;
686 },
687
675 _disconnect: function (ident) { 688 _disconnect: function (ident) {
676 // already disconnected 689 // already disconnected
@@ -716,5 +729,5 @@ MochiKit.Base.update(MochiKit.Signal, {
716 if (o.source === src && o.signal === sig && o.objOrFunc === obj && o.funcOrStr === func) { 729 if (o.source === src && o.signal === sig && o.objOrFunc === obj && o.funcOrStr === func) {
717 self._disconnect(o); 730 self._disconnect(o);
718 if (!self._lock) { 731 if (self._lock === 0) {
719 observers.splice(i, 1); 732 observers.splice(i, 1);
720 } else { 733 } else {
@@ -728,5 +741,5 @@ MochiKit.Base.update(MochiKit.Signal, {
728 if (idx >= 0) { 741 if (idx >= 0) {
729 self._disconnect(ident); 742 self._disconnect(ident);
730 if (!self._lock) { 743 if (self._lock === 0) {
731 observers.splice(idx, 1); 744 observers.splice(idx, 1);
732 } else { 745 } else {
@@ -744,5 +757,5 @@ MochiKit.Base.update(MochiKit.Signal, {
744 var observers = self._observers; 757 var observers = self._observers;
745 var disconnect = self._disconnect; 758 var disconnect = self._disconnect;
746 var locked = self._lock; 759 var lock = self._lock;
747 var dirty = self._dirty; 760 var dirty = self._dirty;
748 if (typeof(funcOrStr) === 'undefined') { 761 if (typeof(funcOrStr) === 'undefined') {
@@ -754,8 +767,8 @@ MochiKit.Base.update(MochiKit.Signal, {
754 (funcOrStr === null || ident.funcOrStr === funcOrStr)) { 767 (funcOrStr === null || ident.funcOrStr === funcOrStr)) {
755 disconnect(ident); 768 disconnect(ident);
756 if (locked) { 769 if (lock === 0) {
757 dirty = true;
758 } else {
759 observers.splice(i, 1); 770 observers.splice(i, 1);
771 } else {
772 dirty = true;
760 } 773 }
761 } 774 }
@@ -775,5 +788,5 @@ MochiKit.Base.update(MochiKit.Signal, {
775 var observers = self._observers; 788 var observers = self._observers;
776 var i, ident; 789 var i, ident;
777 var locked = self._lock; 790 var lock = self._lock;
778 var dirty = self._dirty; 791 var dirty = self._dirty;
779 if (signals.length === 0) { 792 if (signals.length === 0) {
@@ -783,5 +796,5 @@ MochiKit.Base.update(MochiKit.Signal, {
783 if (ident.source === src) { 796 if (ident.source === src) {
784 disconnect(ident); 797 disconnect(ident);
785 if (!locked) { 798 if (lock === 0) {
786 observers.splice(i, 1); 799 observers.splice(i, 1);
787 } else { 800 } else {
@@ -799,5 +812,5 @@ MochiKit.Base.update(MochiKit.Signal, {
799 if (ident.source === src && ident.signal in sigs) { 812 if (ident.source === src && ident.signal in sigs) {
800 disconnect(ident); 813 disconnect(ident);
801 if (!locked) { 814 if (lock === 0) {
802 observers.splice(i, 1); 815 observers.splice(i, 1);
803 } else { 816 } else {
@@ -819,5 +832,5 @@ MochiKit.Base.update(MochiKit.Signal, {
819 var args = MochiKit.Base.extend(null, arguments, 2); 832 var args = MochiKit.Base.extend(null, arguments, 2);
820 var errors = []; 833 var errors = [];
821 self._lock = true; 834 self._lock++;
822 for (var i = 0; i < observers.length; i++) { 835 for (var i = 0; i < observers.length; i++) {
823 var ident = observers[i]; 836 var ident = observers[i];
@@ -838,6 +851,6 @@ MochiKit.Base.update(MochiKit.Signal, {
838 } 851 }
839 } 852 }
840 self._lock = false; 853 self._lock--;
841 if (self._dirty) { 854 if (self._lock === 0 && self._dirty) {
842 self._dirty = false; 855 self._dirty = false;
843 for (var i = observers.length - 1; i >= 0; i--) { 856 for (var i = observers.length - 1; i >= 0; i--) {
@@ -862,5 +875,5 @@ MochiKit.Signal.__new__ = function (win) {
862 this._document = document; 875 this._document = document;
863 this._window = win; 876 this._window = win;
864 this._lock = false; 877 this._lock = 0;
865 this._dirty = false; 878 this._dirty = false;
866 879