From 5dda34dcc707afa0cab1bca9ba33572c019e7fc9 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sat, 14 Apr 2018 20:05:57 +0200 Subject: trying to fix viewport woes --- js/ui/keys.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'js') 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 })() -- cgit v1.2.3-70-g09d2