aboutsummaryrefslogtreecommitdiff
path: root/js/components
diff options
context:
space:
mode:
Diffstat (limited to 'js/components')
-rwxr-xr-xjs/components/hottext.reel/hottext.js13
-rwxr-xr-xjs/components/hottextunit.reel/hottextunit.js9
2 files changed, 17 insertions, 5 deletions
diff --git a/js/components/hottext.reel/hottext.js b/js/components/hottext.reel/hottext.js
index 0480597a..93e6e745 100755
--- a/js/components/hottext.reel/hottext.js
+++ b/js/components/hottext.reel/hottext.js
@@ -121,13 +121,19 @@ var HotText = exports.HotText = Montage.create(SliderBase, {
121 value: 2000 121 value: 2000
122 }, 122 },
123 123
124 // Flag used to dispatch a single change event if either or both of value and units are changed
125 _unitsModified: {
126 enumerable: false,
127 value: false
128 },
129
124 value: { 130 value: {
125 serializable: true, 131 serializable: true,
126 enumerable: true, 132 enumerable: true,
127 get: function() { 133 get: function() {
128 return this._value; 134 return this._value;
129 }, 135 },
130 set: function(value, fromInput) { 136 set: function(value) {
131 if (isNaN(value)) { 137 if (isNaN(value)) {
132 this._valueSyncedWithInputField = false; 138 this._valueSyncedWithInputField = false;
133 this.needsDraw = true; 139 this.needsDraw = true;
@@ -149,6 +155,9 @@ var HotText = exports.HotText = Montage.create(SliderBase, {
149 this._valueSyncedWithInputField = false; 155 this._valueSyncedWithInputField = false;
150 this.needsDraw = true; 156 this.needsDraw = true;
151 this._dispatchActionEvent(); 157 this._dispatchActionEvent();
158 } else if(this._unitsModified) {
159 // Need to dispatch change event if units changed
160 this._dispatchActionEvent();
152 } 161 }
153 } 162 }
154 }, 163 },
@@ -164,7 +173,7 @@ var HotText = exports.HotText = Montage.create(SliderBase, {
164 enumerable: false, 173 enumerable: false,
165 value: function() { 174 value: function() {
166 this._setEventFlags("change", false); 175 this._setEventFlags("change", false);
167 Object.getPropertyDescriptor(this, "value").set.call(this, this.inputFunction(this.element.value), true); 176 this.value = this.inputFunction(this.element.value);
168 } 177 }
169 }, 178 },
170 179
diff --git a/js/components/hottextunit.reel/hottextunit.js b/js/components/hottextunit.reel/hottextunit.js
index 448eb9d7..2a89db03 100755
--- a/js/components/hottextunit.reel/hottextunit.js
+++ b/js/components/hottextunit.reel/hottextunit.js
@@ -40,11 +40,14 @@ var HotTextUnit = exports.HotTextUnit = Montage.create(HotText, {
40 if(this._acceptableUnits.indexOf(value) !== -1) 40 if(this._acceptableUnits.indexOf(value) !== -1)
41 { 41 {
42 this._units = value; 42 this._units = value;
43 this._unitsModified = true;
43 this.needsDraw = true; 44 this.needsDraw = true;
44 45
45 this._setEventFlags("change", false); 46 this._setEventFlags("change", true);
46 this._dispatchActionEvent(); 47 this._dispatchActionEvent();
47 } 48 }
49 } else {
50 this._unitsModified = false;
48 } 51 }
49 } 52 }
50 }, 53 },
@@ -89,13 +92,13 @@ var HotTextUnit = exports.HotTextUnit = Montage.create(HotText, {
89 var match = (unitsString.replace(noSpaces, "$2")).toLowerCase(); 92 var match = (unitsString.replace(noSpaces, "$2")).toLowerCase();
90 if(match) 93 if(match)
91 { 94 {
92 Object.getPropertyDescriptor(this, "units").set.call(this, match); 95 this.units = match;
93 } 96 }
94 } 97 }
95 98
96 this._setEventFlags("change", false); 99 this._setEventFlags("change", false);
97 // Moving this call to after setting the value since value changes are dispatching events before units are set 100 // Moving this call to after setting the value since value changes are dispatching events before units are set
98 Object.getPropertyDescriptor(this, "value").set.call(this, this.inputFunction(inputString), false); 101 this.value = this.inputFunction(inputString);
99 } 102 }
100 }, 103 },
101 104