@@ -1,29 +1,35 @@
6−(function() {
2+Elm.Native.Window = function(elm) {
7 'use strict';
3 'use strict';
9− var Misc = Elm.Native.Misc;
5+ elm.Native = elm.Native || {};
6+ if (elm.Native.Window) return elm.Native.Window;
8+ var Signal = Elm.Signal(elm);
9+ var Misc = Elm.Native.Misc(elm);
11− var dimensions = Elm.Signal.constant(Misc.Tuple(window.innerWidth,
11+ var dimensions = Signal.constant(Misc.Tuple2(window.innerWidth,window.innerHeight));
12− window.innerHeight));
13 dimensions.defaultNumberOfKids = 2;
12 dimensions.defaultNumberOfKids = 2;
15− var width = Elm.Signal.lift(function(p){return p._0;})(dimensions);
14+ var width = A2(Signal.lift, function(p){return p._0}, dimensions);
16 width.defaultNumberOfKids = 0;
15 width.defaultNumberOfKids = 0;
18− var height = Elm.Signal.lift(function(p){return p._1;})(dimensions);
17+ var height = A2(Signal.lift, function(p){return p._1}, dimensions);
19 height.defaultNumberOfKids = 0;
18 height.defaultNumberOfKids = 0;
21− Misc.addListener(window, 'resize', function(e) {
20+ function resize(e) {
22− var w = document.getElementById('widthChecker').offsetWidth;
21+ var w = elm.node.getElementById('widthChecker').offsetWidth;
23− var hasListener = Dispatcher.notify(dimensions.id,
22+ var hasListener = elm.notify(dimensions.id,
24− Misc.Tuple(w, window.innerHeight));
23+ Misc.Tuple2(w, window.innerHeight));
25− if (!hasListener)
24+ if (!hasListener)
26− this.removeEventListener('resize',arguments.callee,false);
25+ this.removeEventListener('resize',arguments.callee,false);
27+ Misc.addListener(window, 'resize', resize);
29+ return elm.Native.Window = {
28− Elm.Native.Window = {dimensions:dimensions,width:width,height:height};
30+ dimensions:dimensions,