mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-17 05:02:06 +00:00
v3
This commit is contained in:
@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user