@@ -20,18 +20,8 @@ Elm.init = function(module, baseNode) {
2020
2121 // ensure that baseNode exists and is properly formatted.
2222 if (typeof baseNode === 'undefined') {
23− var newElement = ElmRuntime.use(ElmRuntime.Render.Utils).newElement;
24− baseNode = newElement('div');
25− document.body.appendChild(baseNode);
26− baseNode.style.width = window.innerWidth + 'px';
27− baseNode.style.height = window.innerHeight + 'px';
28− window.addEventListener('resize', function() {
29− console.log('resize the base node');
30− baseNode.style.width = window.innerWidth + 'px';
31− baseNode.style.height = window.innerHeight + 'px';
32− }, true);
33−
34− var style = newElement('style');
23+ baseNode = document.body;
24+ var style = document.createElement('style');
3525 style.type = 'text/css';
3626 style.innerHTML = "html,head,body { padding:0; margin:0; }" +
3727 "body { font-family: calibri, helvetica, arial, sans-serif; }";
@@ -71,21 +61,26 @@ Elm.init = function(module, baseNode) {
7161 inputs = ElmRuntime.filterDeadInputs(inputs);
7262
7363 // Add the visualModel to the DOM
74− baseNode.appendChild(Render.render(visualModel));
64+ var renderNode = Render.render(visualModel)
65+ baseNode.appendChild(renderNode);
66+ adjustWindow();
7567
76− if ('Window' in elm) {
68+ function adjustWindow() {
69+ if ('Window' in elm) {
7770 var w = baseNode.clientWidth;
7871 if (w !== elm.Window.dimensions.value._0) {
79− notify(elm.Window.dimensions.id,
80− Elm.Native.Utils(elm).Tuple2(w, baseNode.clientHeight));
72+ notify(elm.Window.dimensions.id,
73+ Elm.Native.Utils(elm).Tuple2(w, baseNode.clientHeight));
8174 }
75+ }
8276 }
83−
77+
8478 // set up updates so that the DOM is adjusted as necessary.
8579 var update = Render.update;
8680 function domUpdate(value) {
87− update(baseNode.firstChild, visualModel, value);
81+ update(renderNode, visualModel, value);
8882 visualModel = value;
83+ adjustWindow();
8984 return value;
9085 }
9186