Commit 1396f489 authored by Oleg Korshul's avatar Oleg Korshul

zoom bug

parent 457f91a5
...@@ -1757,6 +1757,9 @@ ...@@ -1757,6 +1757,9 @@
if (isRetina) { if (isRetina) {
this.canvas.style.width = this.canvasOverlay.style.width = this.canvasGraphic.style.width = this.canvasGraphicOverlay.style.width = styleWidth + 'px'; this.canvas.style.width = this.canvasOverlay.style.width = this.canvasGraphic.style.width = this.canvasGraphicOverlay.style.width = styleWidth + 'px';
this.canvas.style.height = this.canvasOverlay.style.height = this.canvasGraphic.style.height = this.canvasGraphicOverlay.style.height = styleHeight + 'px'; this.canvas.style.height = this.canvasOverlay.style.height = this.canvasGraphic.style.height = this.canvasGraphicOverlay.style.height = styleHeight + 'px';
} else {
this.canvas.style.width = this.canvasOverlay.style.width = this.canvasGraphic.style.width = this.canvasGraphicOverlay.style.width = width + 'px';
this.canvas.style.height = this.canvasOverlay.style.height = this.canvasGraphic.style.height = this.canvasGraphicOverlay.style.height = height + 'px';
} }
// При смене ориентации у планшета, сбрасываются флаги у canvas! // При смене ориентации у планшета, сбрасываются флаги у canvas!
......
...@@ -121,6 +121,10 @@ AscBrowser.checkZoom = function() ...@@ -121,6 +121,10 @@ AscBrowser.checkZoom = function()
if (AscBrowser.isChrome && !AscBrowser.isOpera && document && document.firstElementChild && document.body) if (AscBrowser.isChrome && !AscBrowser.isOpera && document && document.firstElementChild && document.body)
{ {
if (false)
{
// этот код - рабочий, но только если этот ифрейм открыт на весь размер браузера
// (window.outerWidth и window.innerWidth зависимы)
if (window.innerWidth > 300) if (window.innerWidth > 300)
AscBrowser.zoom = window.outerWidth / window.innerWidth; AscBrowser.zoom = window.outerWidth / window.innerWidth;
...@@ -143,6 +147,32 @@ AscBrowser.checkZoom = function() ...@@ -143,6 +147,32 @@ AscBrowser.checkZoom = function()
document.firstElementChild.style.zoom = 1.0 / AscBrowser.zoom; document.firstElementChild.style.zoom = 1.0 / AscBrowser.zoom;
} }
else else
{
// делаем простую проверку
// считаем: 0 < window.devicePixelRatio < 2 => _devicePixelRatio = 1; zoom = window.devicePixelRatio / _devicePixelRatio;
// считаем: window.devicePixelRatio >= 2 => _devicePixelRatio = 2; zoom = window.devicePixelRatio / _devicePixelRatio;
if (window.devicePixelRatio > 0.1)
{
if (window.devicePixelRatio < 1.99)
{
var _devicePixelRatio = 1;
AscBrowser.zoom = window.devicePixelRatio / _devicePixelRatio;
}
else
{
var _devicePixelRatio = 2;
AscBrowser.zoom = window.devicePixelRatio / _devicePixelRatio;
AscBrowser.isRetina = true;
}
// chrome 54.x: zoom = "reset" - clear retina zoom (windows)
//document.firstElementChild.style.zoom = "reset";
document.firstElementChild.style.zoom = 1.0 / AscBrowser.zoom;
}
else
document.firstElementChild.style.zoom = "normal";
}
}
else
{ {
AscBrowser.isRetina = (Math.abs(2 - (window.devicePixelRatio / AscBrowser.zoom)) < 0.01); AscBrowser.isRetina = (Math.abs(2 - (window.devicePixelRatio / AscBrowser.zoom)) < 0.01);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment