Fix citation dialog being moved to the wrong location sometimes
This commit is contained in:
parent
98c1a6ca1b
commit
f8c3a3a31e
2 changed files with 18 additions and 11 deletions
|
@ -73,15 +73,19 @@ var Zotero_Citation_Dialog = new function () {
|
|||
*/
|
||||
this.load = Zotero.Promise.coroutine(function* () {
|
||||
// make sure we are visible
|
||||
window.setTimeout(function() {
|
||||
var screenX = window.screenX;
|
||||
var screenY = window.screenY;
|
||||
var xRange = [window.screen.availLeft, window.screen.width-window.outerWidth];
|
||||
var yRange = [window.screen.availTop, window.screen.height-window.outerHeight];
|
||||
window.setTimeout(async function () {
|
||||
let screenX = window.screenX, screenY = window.screenY, i = 5;
|
||||
while (!screenX && i--) {
|
||||
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
||||
screenX = window.screenX;
|
||||
screenY = window.screenY;
|
||||
}
|
||||
var xRange = [window.screen.availLeft, window.screen.left + window.screen.width - window.outerWidth];
|
||||
var yRange = [window.screen.availTop, window.screen.top + window.screen.height - window.outerHeight];
|
||||
if(screenX < xRange[0] || screenX > xRange[1] || screenY < yRange[0] || screenY > yRange[1]) {
|
||||
var targetX = Math.max(Math.min(screenX, xRange[1]), xRange[0]);
|
||||
var targetY = Math.max(Math.min(screenY, yRange[1]), yRange[0]);
|
||||
Zotero.debug("Moving window to "+targetX+", "+targetY);
|
||||
Zotero.debug(`Moving window to ${targetX}, ${targetY}`);
|
||||
window.moveTo(targetX, targetY);
|
||||
}
|
||||
}, 0);
|
||||
|
|
|
@ -157,12 +157,15 @@ var Zotero_QuickFormat = new function () {
|
|||
if (event.target !== document) return;
|
||||
// make sure we are visible
|
||||
let resizePromise = (async function () {
|
||||
await Zotero.Promise.delay();
|
||||
let screenX = window.screenX, screenY = window.screenY, i = 5;
|
||||
while (!screenX && i--) {
|
||||
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
||||
screenX = window.screenX;
|
||||
screenY = window.screenY;
|
||||
}
|
||||
window.resizeTo(window.outerWidth, qfb.clientHeight);
|
||||
var screenX = window.screenX;
|
||||
var screenY = window.screenY;
|
||||
var xRange = [window.screen.availLeft, window.screen.width - window.outerWidth];
|
||||
var yRange = [window.screen.availTop, window.screen.height - window.outerHeight];
|
||||
var xRange = [window.screen.availLeft, window.screen.left + window.screen.width - window.outerWidth];
|
||||
var yRange = [window.screen.availTop, window.screen.top + window.screen.height - window.outerHeight];
|
||||
if (screenX < xRange[0] || screenX > xRange[1] || screenY < yRange[0] || screenY > yRange[1]) {
|
||||
var targetX = Math.max(Math.min(screenX, xRange[1]), xRange[0]);
|
||||
var targetY = Math.max(Math.min(screenY, yRange[1]), yRange[0]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue