@@ -157,20 +157,25 @@ function initGraphics(elm, Module) {
157157 }
158158 var currentScene = signalGraph.value;
159159
160− // Add the currentScene to the DOM
160+ // Add the currentScene to the DOM
161161 var Render = ElmRuntime.use(ElmRuntime.Render.Element);
162162 elm.node.appendChild(Render.render(currentScene));
163− if (elm.Native.Window) elm.Native.Window.resizeIfNeeded();
164163
165164 // set up updates so that the DOM is adjusted as necessary.
166165 function domUpdate(newScene, currentScene) {
167166 ElmRuntime.draw(function(_) {
168− Render.update(elm.node.firstChild, currentScene, newScene);
169− if (elm.Native.Window) elm.Native.Window.resizeIfNeeded();
170− });
167+ Render.update(elm.node.firstChild, currentScene, newScene);
168+ if (elm.Native.Window) elm.Native.Window.resizeIfNeeded();
169+ });
171170 return newScene;
172171 }
173− return A3(Signal.foldp, F2(domUpdate), currentScene, signalGraph);
172+ var renderer = A3(Signal.foldp, F2(domUpdate), currentScene, signalGraph);
173+
174+ // must check for resize after 'renderer' is created so
175+ // that changes show up.
176+ if (elm.Native.Window) elm.Native.Window.resizeIfNeeded();
177+
178+ return renderer;
174179}
175180
176181}());