taskbar-mediacontrol no longer override win.hide

(electron 11.4.2 fixed the bug that required that)
This commit is contained in:
Araxeus
2021-04-09 23:42:03 +03:00
parent 9f2362d346
commit 61d83be52e

View File

@ -2,57 +2,55 @@ const getSongControls = require('../../providers/song-controls');
const getSongInfo = require('../../providers/song-info');
const path = require('path');
let controls;
let CurrentSongInfo;
module.exports = win => {
win.hide = function () {
win.minimize();
win.setSkipTaskbar(true);
};
const show = win.show;
win.show = function () {
win.restore();
win.focus();
win.setSkipTaskbar(false);
show.apply(win);
};
win.isVisible = function () {
return !win.isMinimized();
};
const registerCallback = getSongInfo(win);
const {playPause, next, previous} = getSongControls(win);
const { playPause, next, previous } = getSongControls(win);
controls = { playPause, next, previous }
// If the page is ready, register the callback
win.on('ready-to-show', () => {
registerCallback(songInfo => {
// Wait for song to start before setting thumbar
if (songInfo.title === '') {
return;
}
// Win32 require full rewrite of components
win.setThumbarButtons([
{
tooltip: 'Previous',
icon: get('backward.png'),
click() {previous(win.webContents);}
}, {
tooltip: 'Play/Pause',
// Update icon based on play state
icon: songInfo.isPaused ? get('play.png') : get('pause.png'),
click() {playPause(win.webContents);}
}, {
tooltip: 'Next',
icon: get('forward.png'),
click() {next(win.webContents);}
}
]);
});
registerCallback(songInfo => {
//update currentsonginfo for win.on('show')
CurrentSongInfo = songInfo;
// update thumbar
setThumbar(win, songInfo)
});
// need to set thumbar again after win.show
win.on("show", () => {
if (CurrentSongInfo) {
setThumbar(win, CurrentSongInfo)
}
})
};
function setThumbar(win, songInfo) {
// Wait for song to start before setting thumbar
if (!songInfo.title) {
return;
}
// Win32 require full rewrite of components
win.setThumbarButtons([
{
tooltip: 'Previous',
icon: get('backward.png'),
click() { controls.previous(win.webContents); }
}, {
tooltip: 'Play/Pause',
// Update icon based on play state
icon: songInfo.isPaused ? get('play.png') : get('pause.png'),
click() { controls.playPause(win.webContents); }
}, {
tooltip: 'Next',
icon: get('forward.png'),
click() { controls.next(win.webContents); }
}
]);
}
// Util
function get(file) {
return path.join(__dirname,"assets", file);
return path.join(__dirname, "assets", file);
}