@@ -209,14 +209,6 @@ Elm.Native.Graphics.Input.make = function(elm) {
212− function setRange(node, start, end, dir) {
213− if (node.parentNode) {
214− node.setSelectionRange(start, end, dir);
216− setTimeout(function(){node.setSelectionRange(start, end, dir);}, 0);
220 function updateIfNeeded(css, attribute, latestAttribute) {
212 function updateIfNeeded(css, attribute, latestAttribute) {
221 if (css[attribute] !== latestAttribute) {
213 if (css[attribute] !== latestAttribute) {
222 css[attribute] = latestAttribute;
214 css[attribute] = latestAttribute;
@@ -267,10 +259,7 @@ Elm.Native.Graphics.Input.make = function(elm) {
268 field.type = model.type;
260 field.type = model.type;
269 field.placeholder = JS.fromString(model.placeHolder);
261 field.placeholder = JS.fromString(model.placeHolder);
270− field.value = JS.fromString(model.content.string);
262+ field.value = JS.fromString(model.content);
271− var selection = model.content.selection;
272− var direction = selection.direction.ctor === 'Forward' ? 'forward' : 'backward';
273− setRange(field, selection.start, selection.end, direction);
275 field.elm_signal = model.signal;
264 field.elm_signal = model.signal;
276 field.elm_handler = model.handler;
265 field.elm_handler = model.handler;
@@ -282,15 +271,7 @@ Elm.Native.Graphics.Input.make = function(elm) {
282 String.fromCharCode(event.keyCode) +
271 String.fromCharCode(event.keyCode) +
283 curr.slice(field.selectionEnd));
272 curr.slice(field.selectionEnd));
284 var pos = field.selectionEnd + 1;
273 var pos = field.selectionEnd + 1;
285− elm.notify(field.elm_signal.id, field.elm_handler({
274+ elm.notify(field.elm_signal.id, field.elm_handler(JS.toString(next)));
287− string: JS.toString(next),
291− direction: { ctor:'Forward' }
294 event.preventDefault();
275 event.preventDefault();
@@ -300,46 +281,12 @@ Elm.Native.Graphics.Input.make = function(elm) {
300 if (curr === next) {
281 if (curr === next) {
304− var direction = field.selectionDirection === 'forward' ? 'Forward' : 'Backward';
305− var start = field.selectionStart;
306− var end = field.selectionEnd;
307 field.value = field.elm_old_value;
284 field.value = field.elm_old_value;
309− elm.notify(field.elm_signal.id, field.elm_handler({
285+ elm.notify(field.elm_signal.id, field.elm_handler(JS.toString(next)));
311− string: JS.toString(next),
315− direction: { ctor: direction }
320− function mouseUpdate(event) {
321− var direction = field.selectionDirection === 'forward' ? 'Forward' : 'Backward';
322− elm.notify(field.elm_signal.id, field.elm_handler({
324− string: field.value,
326− start: field.selectionStart,
327− end: field.selectionEnd,
328− direction: { ctor: direction }
332− function mousedown(event) {
334− elm.node.addEventListener('mouseup', mouseup);
336− function mouseup(event) {
338− elm.node.removeEventListener('mouseup', mouseup)
340 field.addEventListener('keypress', keyUpdate);
288 field.addEventListener('keypress', keyUpdate);
341 field.addEventListener('input', inputUpdate);
289 field.addEventListener('input', inputUpdate);
342− field.addEventListener('mousedown', mousedown);
344 return field;
291 return field;
@@ -353,12 +300,9 @@ Elm.Native.Graphics.Input.make = function(elm) {
354 field.type = newModel.type;
301 field.type = newModel.type;
355 field.placeholder = JS.fromString(newModel.placeHolder);
302 field.placeholder = JS.fromString(newModel.placeHolder);
356− var value = JS.fromString(newModel.content.string);
303+ var value = JS.fromString(newModel.content);
357 field.value = value;
304 field.value = value;
358 field.elm_old_value = value;
305 field.elm_old_value = value;
359− var selection = newModel.content.selection;
360− var direction = selection.direction.ctor === 'Forward' ? 'forward' : 'backward';
361− setRange(field, selection.start, selection.end, direction);
364 function mkField(type) {
308 function mkField(type) {