This commit is contained in:
Araxeus
2022-04-10 21:16:43 +03:00
parent 768ec7bda7
commit d23bfe9368
5 changed files with 108 additions and 31 deletions

View File

@ -2,7 +2,7 @@ const path = require("path");
const { app, ipcMain } = require("electron");
const { setOptions } = require("../../config/plugins");
const { setOptions, isEnabled } = require("../../config/plugins");
const { injectCSS } = require("../utils");
let isInPiP = false;
@ -22,6 +22,15 @@ const setLocalOptions = (_options) => {
setOptions("picture-in-picture", _options);
}
const adaptors = [];
const runAdaptors = () => adaptors.forEach(a => a());
if (isEnabled("in-app-menu")) {
let adaptor = require("./adaptors/in-app-menu");
adaptors.push(() => adaptor(win, options, setLocalOptions, togglePiP, isInPiP));
}
const togglePiP = async () => {
isInPiP = !isInPiP;
setLocalOptions({ isInPiP });
@ -38,44 +47,24 @@ const togglePiP = async () => {
win.webContents.on("before-input-event", blockShortcutsInPiP);
win.setFullScreenable(false);
await win.webContents.executeJavaScript(
// Go fullscreen
`
var exitButton = document.querySelector(".exit-fullscreen-button");
exitButton.replaceWith(exitButton.cloneNode(true));
document.querySelector(".exit-fullscreen-button").onclick = () => togglePictureInPicture();
var onPlayerDblClick = document.querySelector('#player').onDoubleClick_
document.querySelector('#player').onDoubleClick_ = () => {};
document.querySelector('#expanding-menu').onmouseleave = () => document.querySelector('.middle-controls').click();
if (!document.querySelector("ytmusic-player-page").playerPageOpen_) {
document.querySelector(".toggle-player-page-button").click();
}
document.querySelector(".fullscreen-button").click();
document.querySelector("ytmusic-player-bar").classList.add("pip");
`
);
win.setFullScreenable(true);
runAdaptors();
win.webContents.send("pip-toggle", true);
app.dock?.hide();
win.setVisibleOnAllWorkspaces(true, {
visibleOnFullScreen: true,
});
app.dock?.show();
win.setAlwaysOnTop(true, "screen-saver", 1);
if (options.alwaysOnTop) {
win.setAlwaysOnTop(true, "screen-saver", 1);
}
} else {
win.webContents.removeListener("before-input-event", blockShortcutsInPiP);
win.setFullScreenable(true);
await win.webContents.executeJavaScript(
// Exit fullscreen
`
document.querySelector('#player').onDoubleClick_ = onPlayerDblClick;
document.querySelector('#expanding-menu').onmouseleave = undefined;
document.querySelector(".exit-fullscreen-button").replaceWith(exitButton);
document.querySelector(".exit-fullscreen-button").click();
document.querySelector("ytmusic-player-bar").classList.remove("pip");
`
);
runAdaptors();
win.webContents.send("pip-toggle", false);
win.setVisibleOnAllWorkspaces(false);
win.setAlwaysOnTop(false);
@ -114,4 +103,3 @@ module.exports = (_win, _options) => {
};
module.exports.setOptions = setLocalOptions;