@@ -209,14 +209,6 @@ Elm.Native.Graphics.Input.make = function(elm) {
209209 });
210210 }
211211
212− function setRange(node, start, end, dir) {
213− if (node.parentNode) {
214− node.setSelectionRange(start, end, dir);
215− } else {
216− setTimeout(function(){node.setSelectionRange(start, end, dir);}, 0);
217− }
218− }
219−
220212 function updateIfNeeded(css, attribute, latestAttribute) {
221213 if (css[attribute] !== latestAttribute) {
222214 css[attribute] = latestAttribute;
@@ -267,10 +259,7 @@ Elm.Native.Graphics.Input.make = function(elm) {
267259
268260 field.type = model.type;
269261 field.placeholder = JS.fromString(model.placeHolder);
270− field.value = JS.fromString(model.content.string);
271− var selection = model.content.selection;
272− var direction = selection.direction.ctor === 'Forward' ? 'forward' : 'backward';
273− setRange(field, selection.start, selection.end, direction);
262+ field.value = JS.fromString(model.content);
274263
275264 field.elm_signal = model.signal;
276265 field.elm_handler = model.handler;
@@ -282,15 +271,7 @@ Elm.Native.Graphics.Input.make = function(elm) {
282271 String.fromCharCode(event.keyCode) +
283272 curr.slice(field.selectionEnd));
284273 var pos = field.selectionEnd + 1;
285− elm.notify(field.elm_signal.id, field.elm_handler({
286− _:{},
287− string: JS.toString(next),
288− selection: {
289− start: pos,
290− end: pos,
291− direction: { ctor:'Forward' }
292− },
293− }));
274+ elm.notify(field.elm_signal.id, field.elm_handler(JS.toString(next)));
294275 event.preventDefault();
295276 }
296277
@@ -300,46 +281,12 @@ Elm.Native.Graphics.Input.make = function(elm) {
300281 if (curr === next) {
301282 return;
302283 }
303−
304− var direction = field.selectionDirection === 'forward' ? 'Forward' : 'Backward';
305− var start = field.selectionStart;
306− var end = field.selectionEnd;
307284 field.value = field.elm_old_value;
308−
309− elm.notify(field.elm_signal.id, field.elm_handler({
310− _:{},
311− string: JS.toString(next),
312− selection: {
313− start: start,
314− end: end,
315− direction: { ctor: direction }
316− },
317− }));
285+ elm.notify(field.elm_signal.id, field.elm_handler(JS.toString(next)));
318286 }
319287
320− function mouseUpdate(event) {
321− var direction = field.selectionDirection === 'forward' ? 'Forward' : 'Backward';
322− elm.notify(field.elm_signal.id, field.elm_handler({
323− _:{},
324− string: field.value,
325− selection: {
326− start: field.selectionStart,
327− end: field.selectionEnd,
328− direction: { ctor: direction }
329− },
330− }));
331− }
332− function mousedown(event) {
333− mouseUpdate(event);
334− elm.node.addEventListener('mouseup', mouseup);
335− }
336− function mouseup(event) {
337− mouseUpdate(event);
338− elm.node.removeEventListener('mouseup', mouseup)
339− }
340288 field.addEventListener('keypress', keyUpdate);
341289 field.addEventListener('input', inputUpdate);
342− field.addEventListener('mousedown', mousedown);
343290
344291 return field;
345292 }
@@ -353,12 +300,9 @@ Elm.Native.Graphics.Input.make = function(elm) {
353300
354301 field.type = newModel.type;
355302 field.placeholder = JS.fromString(newModel.placeHolder);
356− var value = JS.fromString(newModel.content.string);
303+ var value = JS.fromString(newModel.content);
357304 field.value = value;
358305 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);
362306 }
363307
364308 function mkField(type) {