diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 66c0a6a4..bc495822 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -60,7 +60,8 @@ export class ConfigStore { "animated_artwork_qualityLevel": 1, "bg_artwork_rotation": false, "hw_acceleration": "default", // default, webgpu, disabled - "showuserinfo": true + "showuserinfo": true, + "miniplayer_top_toggle": true }, "lyrics": { "enable_mxm": false, diff --git a/src/main/base/win.ts b/src/main/base/win.ts index 3ec4f0fc..0773d8ed 100644 --- a/src/main/base/win.ts +++ b/src/main/base/win.ts @@ -430,6 +430,10 @@ export class Win { this.win.setMinimumSize(width,height); }) + electron.ipcMain.on("windowontop", (event, ontop) => { + this.win.setAlwaysOnTop(ontop); + }); + // Set scale electron.ipcMain.on("windowresize", (event, width, height, lock = false) => { this.win.setContentSize(width, height); diff --git a/src/renderer/index.js b/src/renderer/index.js index 290364fe..658a5411 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3357,9 +3357,20 @@ const app = new Vue({ } else { ipcRenderer.send('windowmin', 844, 410) ipcRenderer.send('windowresize', this.tmpWidth, this.tmpHeight, false) + ipcRenderer.send('windowontop', false) + this.cfg.visual.miniplayer_top_toggle = true; app.appMode = 'player'; } }, + pinMiniPlayer() { + if (this.cfg.visual.miniplayer_top_toggle) { + ipcRenderer.send('windowontop', true) + this.cfg.visual.miniplayer_top_toggle = false + } else { + ipcRenderer.send('windowontop', false) + this.cfg.visual.miniplayer_top_toggle = true; + } + }, formatTimezoneOffset: (e = new Date) => { let leadingZeros = (e, s = 2) => { let n = "" + e; diff --git a/src/renderer/style.less b/src/renderer/style.less index 12f585db..8ceefcb2 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -4799,6 +4799,24 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { -webkit-app-region: no-drag; } + .player-pin { + z-index: 3; + position: absolute; + min-width: 20px; + min-height: 20px; + top: 5px; + right: 30px; + -webkit-app-region: no-drag; + } + + #mini-pin{ + display: none; + } + + .player-pin:hover #mini-pin { + display: block; + } + .playback-button--small { opacity: 0.7; } diff --git a/src/renderer/views/components/miniplayer.ejs b/src/renderer/views/components/miniplayer.ejs index bbfbf8c2..2d585401 100644 --- a/src/renderer/views/components/miniplayer.ejs +++ b/src/renderer/views/components/miniplayer.ejs @@ -1,7 +1,10 @@