on master help sign in
Fix bug revealed by TodoFRP
6a2d21fEvan Czaplicki
libraries/Native/Graphics/Input.js+13−4
@@ -16,8 +16,8 @@ Elm.Native.Graphics.Input.make = function(elm) {
16 var Tuple2 = Utils.Tuple2;
16 var Tuple2 = Utils.Tuple2;
17
17
18 function input(initialValue) {
18 function input(initialValue) {
19− var sig = Signal.constant(initialValue);
19+ var signal = Signal.constant(initialValue);
20− return { _:{}, signal:sig, handle:sig };
20+ return { _:{}, signal:signal, handle:signal };
21 }
21 }
22
22
23 function renderDropDown(signal, values) {
23 function renderDropDown(signal, values) {
@@ -94,6 +94,7 @@ Elm.Native.Graphics.Input.make = function(elm) {
94
94
95 function renderCustomButton(model) {
95 function renderCustomButton(model) {
96 var btn = newNode('div');
96 var btn = newNode('div');
97+ btn.elm_signal = model.signal;
97 btn.elm_value = model.value;
98 btn.elm_value = model.value;
98
99
99 btn.elm_up = Render.render(model.up);
100 btn.elm_up = Render.render(model.up);
@@ -140,8 +141,16 @@ Elm.Native.Graphics.Input.make = function(elm) {
140 }
141 }
141
142
142 function updateCustomButton(node, oldModel, newModel) {
143 function updateCustomButton(node, oldModel, newModel) {
144+ var signal = newModel.signal;
143− node.elm_signal = newModel.signal;
145+ node.elm_up.elm_signal = signal;
146+ node.elm_hover.elm_signal = signal;
147+ node.elm_down.elm_signal = signal;
148+
149+ var value = newModel.value;
144− node.elm_value = newModel.value;
150+ node.elm_up.elm_value = value;
151+ node.elm_hover.elm_value = value;
152+ node.elm_down.elm_value = value;
153+
145 Render.update(node.elm_up, oldModel.up, newModel.up)
154 Render.update(node.elm_up, oldModel.up, newModel.up)
146 Render.update(node.elm_hover, oldModel.hover, newModel.hover)
155 Render.update(node.elm_hover, oldModel.hover, newModel.hover)
147 Render.update(node.elm_down, oldModel.down, newModel.down)
156 Render.update(node.elm_down, oldModel.down, newModel.down)