UNPKG

1.18 kBtext/coffeescriptView Raw
1origDescriptors =
2 'innerWidth': Object.getOwnPropertyDescriptor(window, 'innerWidth')
3 'innerHeight': Object.getOwnPropertyDescriptor(window, 'innerHeight')
4
5module.exports = new ()->
6 overwritten = false
7 current = width:window.innerWidth, height:window.innerHeight
8
9 getReal = (dimension)->
10 dimension = 'inner'+dimension.replace /\b./, (letter)-> letter.toUpperCase()
11 origDescriptors[dimension].get.call(window)
12
13 overwrite = ()-> unless overwritten
14 overwritten = true
15
16 Object.defineProperty window, 'innerWidth',
17 configurable: true
18 get: ()-> current.width
19 set: (newValue)-> current.width = newValue
20
21 Object.defineProperty window, 'innerHeight',
22 configurable: true
23 get: ()-> current.height
24 set: (newValue)-> current.height = newValue
25
26
27 @simulate = (width, height)->
28 current.width = width if width
29 current.height = height if height
30
31 overwrite()
32 event = document.createEvent('Event')
33 event.initEvent('resize', true, false)
34 window.dispatchEvent(event)
35
36
37 @restore = ()->
38 Object.defineProperty window, 'innerWidth', origDescriptors.innerWidth
39 Object.defineProperty window, 'innerHeight', origDescriptors.innerHeight
40
41
42 return @
\No newline at end of file