@@ -1,5 +1,9 @@
2var Signal = function() {
2var Signal = function() {
4+ var p = Value.getSize(elem);
5+ return ["Element", Guid.guid(), ["EHtml",elem], p[0], p[1], 1, Nothing, Nothing];
3 function toElmString(str) {
7 function toElmString(str) {
4 var out = ["Nil"];
8 var out = ["Nil"];
5 for (var i = str.length; i--; ) {
9 for (var i = str.length; i--; ) {
@@ -72,12 +76,13 @@ var Signal = function() {
72 this.removeEventListener('mousemove',arguments.callee,false);
76 this.removeEventListener('mousemove',arguments.callee,false);
74 var clickedOn = function(elem) {
78 var clickedOn = function(elem) {
79+ var node = Render.render(elem);
75 var click = Elm.Input(false);
80 var click = Elm.Input(false);
76− addListener(elem, 'click', function(e) {
81+ addListener(node, 'click', function(e) {
77 Dispatcher.notify(click.id, true);
82 Dispatcher.notify(click.id, true);
78 Dispatcher.notify(click.id, false);
83 Dispatcher.notify(click.id, false);
80− return Value.Tuple(elem, click);
85+ return Value.Tuple(wrap(node), click);
82 return {position: position,
87 return {position: position,
@@ -242,10 +247,6 @@ var Signal = function() {
242 return { inRange:inRange, randomize:randomize };
247 return { inRange:inRange, randomize:randomize };
244 var Input = function() {
249 var Input = function() {
245− function wrap(elem) {
246− var p = Value.getSize(elem);
247− return ["Element", Guid.guid(), ["EHtml",elem], p[0], p[1], 1, Nothing, Nothing];
249 var newTextInput = function(elem, ghostText) {
250 var newTextInput = function(elem, ghostText) {
250 elem.placeholder = Foreign.JavaScript.castStringToJSString(ghostText);
251 elem.placeholder = Foreign.JavaScript.castStringToJSString(ghostText);
251 var str = Elm.Input(["Nil"]);
252 var str = Elm.Input(["Nil"]);