From a1a5081f28154c677c657507d307c48096d4d023 Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sun, 6 Sep 2026 16:43:01 +0900 Subject: [PATCH] =?UTF-8?q?fix(B05):=20=EC=A2=85=EB=8B=A8=20=EA=B7=B8?= =?UTF-8?q?=EB=9E=98=ED=94=84=EB=A5=BC=20=EB=81=8C=20=EB=95=8C=20=EA=B8=80?= =?UTF-8?q?=EC=9E=90=EA=B0=80=20=EC=84=A0=ED=83=9D=EB=90=98=EB=8D=98=20?= =?UTF-8?q?=EA=B2=83=20=EB=A7=89=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 포인터 잡기를 끌기 시작 뒤로 미룬 뒤(측점 선택 복구), 그 전까지 브라우저 기본 글자 선택이 살아나 끌 때마다 라벨·수치가 파랗게 잡혔다. 끌기가 실제로 시작되는 순간 `user-select: none` 을 걸고 이미 잡힌 선택을 푼다. 끝나면 원래대로 되돌린다. 검증(공용 브라우저, 실제 마우스): 끄는 동안 선택된 글자 0자, 끝난 뒤 속성 원복, 측점 클릭 선택은 그대로 동작(60m). Co-Authored-By: Claude Opus 5 (1M context) --- B05_Profile/B05_Profile_UI_Profile_Wheel.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/B05_Profile/B05_Profile_UI_Profile_Wheel.ts b/B05_Profile/B05_Profile_UI_Profile_Wheel.ts index 6534ec6f..d174fc83 100644 --- a/B05_Profile/B05_Profile_UI_Profile_Wheel.ts +++ b/B05_Profile/B05_Profile_UI_Profile_Wheel.ts @@ -119,6 +119,7 @@ export function attachWheelHorizontalScroll(scroller: HTMLElement): void { if (scroller.hasPointerCapture(dragId)) scroller.releasePointerCapture(dragId); dragId = null; scroller.style.cursor = ""; + scroller.style.userSelect = ""; // 끈 뒤의 click 한 번만 삼킨다(캡처 단계라 아래 리스너보다 먼저 잡는다). if (dragMoved) { const swallow = (event: MouseEvent): void => { @@ -160,6 +161,10 @@ export function attachWheelHorizontalScroll(scroller: HTMLElement): void { scroller.style.cursor = "grabbing"; // 이제부터 진짜 끌기다 — 창 밖으로 나가도 이어지도록 포인터를 잡는다. scroller.setPointerCapture(event.pointerId); + // 끄는 동안 글자가 파랗게 잡히지 않게 한다. 포인터 잡기를 미룬 뒤로 브라우저가 + // 기본 글자 선택을 시작했다(2026-09-06 사용자 지적). 이미 잡힌 것도 푼다. + scroller.style.userSelect = "none"; + window.getSelection()?.removeAllRanges(); } scroller.scrollLeft = dragLeft - dx; scroller.scrollTop = dragTop - dy;