Fixed bug: Triggering fullscreen from the Tidal web app would cause the menubar to be visible even if it was disabled in the settings (#96)

Co-authored-by: Diogo Oliveira <dromarques@outlook.com>
This commit is contained in:
2022-01-23 10:55:50 +01:00
committed by GitHub
parent d51d5cdc24
commit 5a65f60cc5
6 changed files with 42 additions and 14 deletions

View File

@@ -6,6 +6,7 @@ const globalEvents = {
previous: "previous",
updateInfo: "update-info",
hideSettings: "hideSettings",
refreshMenuBar: "refreshMenubar",
showSettings: "showSettings",
storeChanged: "storeChanged",
error: "error",

View File

@@ -29,6 +29,14 @@ if (!app.isPackaged) {
});
}
/**
* Update the menuBarVisbility according to the store value
*
*/
function syncMenuBarWithStore() {
mainWindow.setMenuBarVisibility(store.get(settings.menuBar));
}
function createWindow(options = {}) {
// Create the browser window.
mainWindow = new BrowserWindow({
@@ -48,7 +56,7 @@ function createWindow(options = {}) {
},
});
mainWindow.setMenuBarVisibility(store.get(settings.menuBar));
syncMenuBarWithStore();
// load the Tidal website
mainWindow.loadURL(tidalUrl);
@@ -95,6 +103,7 @@ app.on("ready", () => {
store.get(settings.trayIcon) && addTray({ icon }) && refreshTray();
store.get(settings.api) && expressModule.run(mainWindow);
store.get(settings.enableDiscord) && discordModule.initRPC();
// mainWindow.webContents.openDevTools();
});
app.on("activate", function () {
@@ -117,8 +126,12 @@ ipcMain.on(globalEvents.showSettings, (event, arg) => {
showSettingsWindow();
});
ipcMain.on(globalEvents.refreshMenuBar, (event, arg) => {
syncMenuBarWithStore();
});
ipcMain.on(globalEvents.storeChanged, (event, arg) => {
mainWindow.setMenuBarVisibility(store.get(settings.menuBar));
syncMenuBarWithStore();
if (store.get(settings.enableDiscord) && !discordModule.rpc) {
discordModule.initRPC();

View File

@@ -82,17 +82,20 @@ const elements = {
getAlbumName: function () {
//If listening to an album, get its name from the header title
if(window.location.href.includes('/album/')) {
if (window.location.href.includes("/album/")) {
const albumName = window.document.querySelector(this.album_header_title);
if(albumName) {
if (albumName) {
return albumName.textContent;
}
//If listening to a playlist or a mix, get album name from the list
} else if(window.location.href.includes('/playlist/') || window.location.href.includes('/mix/')) {
if(currentPlayStatus === statuses.playing) {
} else if (
window.location.href.includes("/playlist/") ||
window.location.href.includes("/mix/")
) {
if (currentPlayStatus === statuses.playing) {
const row = window.document.querySelector(this.playing_title).closest(this.tracklist_row);
if(row) {
return row.querySelector(this.album_name_cell).textContent;
if (row) {
return row.querySelector(this.album_name_cell).textContent;
}
}
}
@@ -213,6 +216,12 @@ function handleLogout() {
);
}
function addFullScreenListeners() {
window.document.addEventListener("fullscreenchange", (event) => {
ipcRenderer.send(globalEvents.refreshMenuBar);
});
}
/**
* Add ipc event listeners.
* Some actions triggered outside of the site need info from the site.
@@ -274,8 +283,8 @@ function convertDuration(duration) {
function updateMediaInfo(options, notify) {
if (options) {
ipcRenderer.send(globalEvents.updateInfo, options);
if(store.get(settings.notifications) && notify) {
new Notification({ title: options.title, body: options.message, icon: options.icon}).show();
if (store.get(settings.notifications) && notify) {
new Notification({ title: options.title, body: options.message, icon: options.icon }).show();
}
if (player) {
player.metadata = {
@@ -331,7 +340,7 @@ setInterval(function () {
url: currentURL,
current: current,
duration: duration,
'app-name': appName,
"app-name": appName,
};
const playStatusChanged = currentStatus !== currentPlayStatus;
@@ -452,3 +461,4 @@ if (process.platform === "linux" && store.get(settings.mpris)) {
addHotKeys();
addIPCEventListeners();
addFullScreenListeners();