From 37b5ab916ce946504381916c5d6897c7064d07a2 Mon Sep 17 00:00:00 2001 From: Slowlife01 Date: Thu, 20 Mar 2025 08:47:07 +0700 Subject: [PATCH] fix(MediaController): restore scrollbar when updating ui & don't update time from other tab --- .../zen-components/ZenMediaController.mjs | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/browser/base/zen-components/ZenMediaController.mjs b/src/browser/base/zen-components/ZenMediaController.mjs index 6aded7022..e6c7e9542 100644 --- a/src/browser/base/zen-components/ZenMediaController.mjs +++ b/src/browser/base/zen-components/ZenMediaController.mjs @@ -138,6 +138,7 @@ class ZenMediaController { .then(() => { this.mediaControlBar.setAttribute('hidden', 'true'); gZenUIManager.updateTabsToolbar(); + gZenUIManager.restoreScrollbarState(); }); } @@ -157,6 +158,7 @@ class ZenMediaController { this.mediaControlBar.querySelector('toolbaritem').getBoundingClientRect().height + 'px'; this.mediaControlBar.style.opacity = 0; gZenUIManager.updateTabsToolbar(); + gZenUIManager.restoreScrollbarState(); gZenUIManager.motion.animate( this.mediaControlBar, { @@ -210,6 +212,7 @@ class ZenMediaController { this.mediaArtist.textContent = metadata.artist || ''; gZenUIManager.updateTabsToolbar(); + gZenUIManager.restoreScrollbarState(); this._currentPosition = positionState.position; this._currentDuration = positionState.duration; @@ -277,15 +280,15 @@ class ZenMediaController { } _onPositionstateChange(event) { - if (event.target.id !== this._currentMediaController?.id) { - const mediaController = this.mediaControllersMap.get(event.target.id); - this.mediaControllersMap.set(event.target.id, { - ...mediaController, - position: event.position, - duration: event.duration, - lastUpdated: Date.now(), - }); - } + const mediaController = this.mediaControllersMap.get(event.target.id); + this.mediaControllersMap.set(event.target.id, { + ...mediaController, + position: event.position, + duration: event.duration, + lastUpdated: Date.now(), + }); + + if (event.target.id !== this._currentMediaController?.id) return; this._currentPosition = event.position; this._currentDuration = event.duration;