From 46d6d4e4eade490a0bc7edd932e1d0849a9b3207 Mon Sep 17 00:00:00 2001 From: borntotop Date: Mon, 14 Sep 2026 05:15:14 +0530 Subject: [PATCH] fix(theme): prevent background scroll when selecting search history item --- src/client/theme-default/composables/scroll-lock.ts | 7 +++++++ src/client/theme-default/styles/components/vp-doc.css | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/client/theme-default/composables/scroll-lock.ts b/src/client/theme-default/composables/scroll-lock.ts index e04d15f64..3472d462d 100644 --- a/src/client/theme-default/composables/scroll-lock.ts +++ b/src/client/theme-default/composables/scroll-lock.ts @@ -117,8 +117,13 @@ export function useBodyScrollLock(): WritableComputedRef { const isLocked = shallowRef(false) let useEvents = false + let scrollY = 0 + function lock() { if (isLocked.value) return + + scrollY = window.scrollY + useEvents = window.innerWidth > document.documentElement.clientWidth && !CSS.supports('scrollbar-gutter', 'stable') @@ -130,6 +135,8 @@ export function useBodyScrollLock(): WritableComputedRef { if (!isLocked.value) return useEvents ? unlockEvents() : unlockOverflow() isLocked.value = false + + window.scrollTo(0, scrollY) } onScopeDispose(unlock) diff --git a/src/client/theme-default/styles/components/vp-doc.css b/src/client/theme-default/styles/components/vp-doc.css index ec6a34692..9b7cb9510 100644 --- a/src/client/theme-default/styles/components/vp-doc.css +++ b/src/client/theme-default/styles/components/vp-doc.css @@ -620,3 +620,7 @@ content: '\2060'; color: currentColor; } + +html { + scrollbar-gutter: stable; +}