From 4f0189f3e0bd3d20f1a5051d5c2c143685537f96 Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Tue, 27 Oct 2020 16:24:59 +0700 Subject: [PATCH] =?UTF-8?q?=D0=AD=D0=BA=D1=81=D0=BF=D0=B5=D1=80=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/Reader/LibsPage/LibsPage.vue | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/client/components/Reader/LibsPage/LibsPage.vue b/client/components/Reader/LibsPage/LibsPage.vue index e61ed1c3..94eadfbc 100644 --- a/client/components/Reader/LibsPage/LibsPage.vue +++ b/client/components/Reader/LibsPage/LibsPage.vue @@ -53,6 +53,31 @@ import _ from 'lodash'; import Window from '../../share/Window.vue'; //import rstore from '../../../store/modules/reader'; +const popupCenter = ({url, title, w, h}) => { + // Fixes dual-screen position Most browsers Firefox + const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; + const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; + + const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; + const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; + + const systemZoom = width / window.screen.availWidth; + const left = (width - w) / 2 / systemZoom + dualScreenLeft + const top = (height - h) / 2 / systemZoom + dualScreenTop + const newWindow = window.open(url, title, + ` + scrollbars=yes, + width=${w / systemZoom}, + height=${h / systemZoom}, + top=${top}, + left=${left} + ` + ) + + if (window.focus) newWindow.focus(); + //newWindow.close(); +} + export default @Component({ components: { Window @@ -153,6 +178,7 @@ class LibsPage extends Vue { this.$nextTick(() => { this.frameVisible = true; }); + popupCenter({url: this.libs.startLink, w: 900, h: 500}); } addProtocol(url) {