@@ -77,10 +77,13 @@ Elm.Native.Keyboard.make = function(elm) {
78 function keySignal(f) {
78 function keySignal(f) {
79 var signal = A2(Signal.lift, f, keysDown);
79 var signal = A2(Signal.lift, f, keysDown);
80− // what's the significance of these two following lines? -jpm
80+ // must set the default number of kids to make it possible to filter
81+ // these signals if they are not actually used.
81 keysDown.defaultNumberOfKids += 1;
82 keysDown.defaultNumberOfKids += 1;
82− signal.defaultNumberOfKids = 0;
83+ signal.defaultNumberOfKids = 1;
84+ var filtered = Signal.dropRepeats(signal)
85+ filtered.defaultNumberOfKids = 0;
83− return signal;
86+ return filtered;
86 function dir(up, down, left, right) {
89 function dir(up, down, left, right) {