fix: systray flickers on every player update

This commit is contained in:
josselinonduty 2025-12-01 16:54:46 +01:00
parent 9cf685e4c5
commit b71beb6323
No known key found for this signature in database

View File

@ -1,15 +1,15 @@
From bb03d4664c7f7137c618cc575fc5d3029ae239a1 Mon Sep 17 00:00:00 2001 From 04b442c083d2900f91a7d68abf3a89932a844e0c Mon Sep 17 00:00:00 2001
From: josselinonduty <contact@josselinonduty.fr> From: josselinonduty <contact@josselinonduty.fr>
Date: Sun, 30 Nov 2025 18:36:05 +0100 Date: Mon, 1 Dec 2025 16:50:13 +0100
Subject: [PATCH] feat: Provide metadata; Better MPRIS compatiblity Subject: [PATCH] feat: Provide metadata and MPRIS compatiblity
--- ---
build/main.js | 144 ++++++++++++++++++++++++++++++++++++++-------- build/main.js | 148 ++++++++++++++++++++++++++++++++++++++--------
build/renderer.js | 118 +++++++++++++++++++++++++++++++------ build/renderer.js | 118 +++++++++++++++++++++++++++++++-----
2 files changed, 222 insertions(+), 40 deletions(-) 2 files changed, 225 insertions(+), 41 deletions(-)
diff --git a/build/main.js b/build/main.js diff --git a/build/main.js b/build/main.js
index 75182f1..481fc5c 100644 index 75182f1..859f11e 100644
--- a/build/main.js --- a/build/main.js
+++ b/build/main.js +++ b/build/main.js
@@ -87,6 +87,10 @@ @@ -87,6 +87,10 @@
@ -71,7 +71,7 @@ index 75182f1..481fc5c 100644
} }
play() { play() {
this.ipc.send("channel-player-media-control", MediaPlayerControl.Play); this.ipc.send("channel-player-media-control", MediaPlayerControl.Play);
@@ -1207,15 +1235,64 @@ @@ -1207,15 +1235,66 @@
this.ipc.send("channel-player-shuffle-update", shuffle); this.ipc.send("channel-player-shuffle-update", shuffle);
} }
setRepeatMode(repeatMode) { setRepeatMode(repeatMode) {
@ -122,9 +122,11 @@ index 75182f1..481fc5c 100644
+ }); + });
} }
- setPlayerInfo(player) { - setPlayerInfo(player) {
+ setPlayerInfo(player, data) { - (this.player = Object.assign(this.player, player)),
(this.player = Object.assign(this.player, player)),
- this.emit(MediaEvents.PlayerUpdated, this.player); - this.emit(MediaEvents.PlayerUpdated, this.player);
+ setPlayerInfo(player, data) {
+ if (Object.keys(player).length > 0) {
+ (this.player = Object.assign(this.player, player)),
+ this.emit(MediaEvents.PlayerUpdated, this.player), + this.emit(MediaEvents.PlayerUpdated, this.player),
+ (this.mprisPlayer.playbackStatus = + (this.mprisPlayer.playbackStatus =
+ this.player.state === "playing" + this.player.state === "playing"
@ -136,13 +138,14 @@ index 75182f1..481fc5c 100644
+ : this.player.repeatMode === MediaPlayerRepeatMode.Once + : this.player.repeatMode === MediaPlayerRepeatMode.Once
+ ? "Track" + ? "Track"
+ : "None"); + : "None");
+ }
+ if (data?.player?.volume) { + if (data?.player?.volume) {
+ this.mprisPlayer.volume = data.player.volume; + this.mprisPlayer.volume = data.player.volume;
+ } + }
} }
getTrackInfo() { getTrackInfo() {
return this.track; return this.track;
@@ -1275,7 +1352,11 @@ @@ -1275,7 +1354,11 @@
1, 1,
(0, external_inversify_namespaceObject.inject)(SERVICE_USER) (0, external_inversify_namespaceObject.inject)(SERVICE_USER)
), ),
@ -155,7 +158,7 @@ index 75182f1..481fc5c 100644
], ],
MediaService MediaService
); );
@@ -2457,7 +2538,7 @@ @@ -2457,7 +2540,7 @@
(this.ipc = ipc), (this.ipc = ipc),
(this.app = app); (this.app = app);
} }
@ -164,7 +167,7 @@ index 75182f1..481fc5c 100644
const previousUserID = this.user.id; const previousUserID = this.user.id;
(this.user = Object.assign(this.user, userInfo)), (this.user = Object.assign(this.user, userInfo)),
previousUserID !== this.user.id && previousUserID !== this.user.id &&
@@ -2689,23 +2770,34 @@ @@ -2689,23 +2772,34 @@
const PlayerIpc_ipc = main_di.get(SERVICE_IPC), const PlayerIpc_ipc = main_di.get(SERVICE_IPC),
media = main_di.get(SERVICE_MEDIA), media = main_di.get(SERVICE_MEDIA),
powerSave = main_di.get(SERVICE_POWER_SAVE); powerSave = main_di.get(SERVICE_POWER_SAVE);
@ -212,7 +215,7 @@ index 75182f1..481fc5c 100644
}); });
const UpdaterIpc_ipc = main_di.get(SERVICE_IPC), const UpdaterIpc_ipc = main_di.get(SERVICE_IPC),
autoUpdater = main_di.get(SERVICE_UPDATER); autoUpdater = main_di.get(SERVICE_UPDATER);
@@ -2714,8 +2806,8 @@ @@ -2714,8 +2808,8 @@
}); });
const UserIpc_ipc = main_di.get(SERVICE_IPC), const UserIpc_ipc = main_di.get(SERVICE_IPC),
user = main_di.get(SERVICE_USER); user = main_di.get(SERVICE_USER);
@ -223,7 +226,7 @@ index 75182f1..481fc5c 100644
}); });
var application_awaiter = function (thisArg, _arguments, P, generator) { var application_awaiter = function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) { return new (P || (P = Promise))(function (resolve, reject) {
@@ -2781,6 +2873,10 @@ @@ -2781,6 +2875,10 @@
"autoplay-policy", "autoplay-policy",
"no-user-gesture-required" "no-user-gesture-required"
), ),