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 --- index.html | 1 + js/ui/keys.js | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/index.html b/index.html index c822bb2..59bb2f1 100644 --- a/index.html +++ b/index.html @@ -3,6 +3,7 @@ asciiblaster + 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