From 4378959131ea404a0eb7a8b05a3d907cc2b30132 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Wed, 15 Jul 2026 21:22:51 +0545 Subject: [PATCH] fix(controlcenter): refresh player state on resume MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When control center hides, PlayerBox.suspend() blocks all signal handlers. On resume(), clearing the flag wasn't enough — stale state lingered until next fabricator poll (up to 5s). Now resume() immediately syncs play/pause icon, metadata, and artwork. --- src/window/controlcenter/player.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/window/controlcenter/player.py b/src/window/controlcenter/player.py index 9be2122..39a1d1b 100644 --- a/src/window/controlcenter/player.py +++ b/src/window/controlcenter/player.py @@ -570,6 +570,16 @@ class PlayerBox(Box): def resume(self): self.exit = False + if self.player is not None: + current_status = str(self.player.playback_status).lower() + self._last_notified_status = current_status + self.play_pause_icon.dynamic_file( + "player/play.svg" + if current_status == "paused" + else "player/pause.svg" + ) + self._on_metadata(self.player, self.player._player.props.metadata) + self.set_image() def _on_map(self, *_): self._check_and_update_playing_state()