This commit is contained in:
Araxeus
2022-04-10 19:19:20 +03:00
parent c25a6f9d2a
commit 768ec7bda7
5 changed files with 106 additions and 28 deletions

View File

@ -175,6 +175,8 @@ function createMainWindow() {
win.webContents.loadURL(urlToLoad);
win.on("closed", onClosed);
const setPiPOptions = (key, value) => config.plugins.setOptions("picture-in-picture", { [key]: value });
win.on("move", () => {
if (win.isMaximized()) return;
let position = win.getPosition();
@ -183,6 +185,8 @@ function createMainWindow() {
config.plugins.getOptions("picture-in-picture")["isInPiP"];
if (!isPiPEnabled) {
lateSave("window-position", { x: position[0], y: position[1] });
} else if(config.plugins.getOptions("picture-in-picture")["savePosition"]) {
lateSave("pip-position", position, setPiPOptions);
}
});
@ -196,25 +200,29 @@ function createMainWindow() {
winWasMaximized = isMaximized;
config.set("window-maximized", isMaximized);
}
if (isMaximized) return;
const isPiPEnabled =
config.plugins.isEnabled("picture-in-picture") &&
config.plugins.getOptions("picture-in-picture")["isInPiP"];
if (!isMaximized && !isPiPEnabled) {
if (!isPiPEnabled) {
lateSave("window-size", {
width: windowSize[0],
height: windowSize[1],
});
} else if(config.plugins.getOptions("picture-in-picture")["saveSize"]) {
lateSave("pip-size", windowSize, setPiPOptions);
}
});
let savedTimeouts = {};
function lateSave(key, value) {
function lateSave(key, value, fn = config.set) {
if (savedTimeouts[key]) clearTimeout(savedTimeouts[key]);
savedTimeouts[key] = setTimeout(() => {
config.set(key, value);
fn(key, value);
savedTimeouts[key] = undefined;
}, 1000)
}, 600);
}
win.webContents.on("render-process-gone", (event, webContents, details) => {