diff options
Diffstat (limited to 'js/ui')
| -rw-r--r-- | js/ui/keys.js | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/js/ui/keys.js b/js/ui/keys.js index 77922c7..c157671 100644 --- a/js/ui/keys.js +++ b/js/ui/keys.js @@ -204,6 +204,33 @@ var keys = (function(){ } } + function cancelZoom() { + var d = document, + viewport, + content, + maxScale = ',maximum-scale=', + maxScaleRegex = /,*maximum\-scale\=\d*\.*\d*/; + + // this should be a focusable DOM Element + if (!this.addEventListener || !d.querySelector) { + return; + } + + viewport = d.querySelector('meta[name="viewport"]'); + content = viewport.content; + + function changeViewport(event) { + // http://nerd.vasilis.nl/prevent-ios-from-zooming-onfocus/ + viewport.content = content + (event.type == 'blur' ? (content.match(maxScaleRegex, '') ? '' : maxScale + 10) : maxScale + 1); + } + + // We could use DOMFocusIn here, but it's deprecated. + this.addEventListener('focus', changeViewport, true); + this.addEventListener('blur', changeViewport, false); + } + + cancelZoom.bind(cursor_input)(); + return keys })() |
