From 5a65f60cc5a51353f9c17dfc56b67c0809f80a37 Mon Sep 17 00:00:00 2001 From: Rick van Lieshout Date: Sun, 23 Jan 2022 10:55:50 +0100 Subject: [PATCH] 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 --- CHANGELOG.md | 4 ++++ package-lock.json | 4 ++-- package.json | 2 +- src/constants/globalEvents.js | 1 + src/main.js | 17 +++++++++++++++-- src/preload.js | 28 +++++++++++++++++++--------- 6 files changed, 42 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d799c8..6120ecd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 2.7.1 + +- Fixed bug: Triggering fullscreen from the Tidal web app would cause the menubar to be visible even if it was disabled in the settings + ## 2.7.0 - Switched to the native Notifier (removed node-notifier) diff --git a/package-lock.json b/package-lock.json index 39ff278..02c3025 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tidal-hifi", - "version": "2.7.0", + "version": "2.7.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "tidal-hifi", - "version": "2.7.0", + "version": "2.7.1", "license": "MIT", "dependencies": { "discord-rpc": "^4.0.1", diff --git a/package.json b/package.json index 4cc853d..3ec9e61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tidal-hifi", - "version": "2.7.0", + "version": "2.7.1", "description": "Tidal on Electron with widevine(hifi) support", "main": "src/main.js", "scripts": { diff --git a/src/constants/globalEvents.js b/src/constants/globalEvents.js index 22f47d4..c330be4 100644 --- a/src/constants/globalEvents.js +++ b/src/constants/globalEvents.js @@ -6,6 +6,7 @@ const globalEvents = { previous: "previous", updateInfo: "update-info", hideSettings: "hideSettings", + refreshMenuBar: "refreshMenubar", showSettings: "showSettings", storeChanged: "storeChanged", error: "error", diff --git a/src/main.js b/src/main.js index 73bb075..f2002f3 100644 --- a/src/main.js +++ b/src/main.js @@ -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(); diff --git a/src/preload.js b/src/preload.js index 89d8067..cb04429 100644 --- a/src/preload.js +++ b/src/preload.js @@ -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();