From 47fa05abd3dd8f694d7ce568bf645598f570845f Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 18 Aug 2026 18:49:36 +0900 Subject: [PATCH] =?UTF-8?q?fix(B05):=20=EC=B8=A1=EC=A0=90=EB=B2=88?= =?UTF-8?q?=ED=98=B8+=EC=9E=94=EC=97=AC=EA=B1=B0=EB=A6=AC=20=ED=99=95?= =?UTF-8?q?=EC=A0=95=20=EC=A6=89=EC=8B=9C=20=EC=9C=A0=EC=97=AD=20=EC=9E=84?= =?UTF-8?q?=EC=8B=9C=20=EA=B3=84=EC=82=B0=20=EC=8B=A4=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 잔여거리까지 입력해도 입력군을 떠나기 전에는 임시 배치가 나가지 않았다 (2026-08-18 사용자 보고). 잔여거리 값 확정(change) 즉시 commitPosition을 실행하고, 측점번호 수정은 잔여거리가 이미 있을 때만 즉시 반영한다. focusout 경로는 잔여거리 없이 정측점만 쓰는 경우의 확정용으로 유지. Co-Authored-By: Claude Opus 5 (1M context) --- B05_Profile/B05_Profile_UI_Structures_Panel.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/B05_Profile/B05_Profile_UI_Structures_Panel.ts b/B05_Profile/B05_Profile_UI_Structures_Panel.ts index 175d049b..a147dc0c 100644 --- a/B05_Profile/B05_Profile_UI_Structures_Panel.ts +++ b/B05_Profile/B05_Profile_UI_Structures_Panel.ts @@ -666,9 +666,16 @@ export function createStructuresSection(callbacks: StructuresCallbacks): Structu input.addEventListener("change", handleStationInput), ), ); - // A군 임시 배치는 측점 입력군에서 포커스가 완전히 빠져나간 뒤에만 — 측점번호를 - // 넣고 잔여거리 칸으로 옮기는 중간에는 나가지 않는다(2026-08-18 사용자 지시: - // 측점+거리를 다 받은 후 임시 배치). Enter로도 바로 나갈 수 있다. + // 측점번호+잔여거리가 **둘 다 확정된 순간** 임시 배치·옵션 활성화가 바로 나간다 + // (2026-08-18 사용자 지시 — 입력군을 떠나기 전이라도). 잔여거리 값이 확정되면 + // 즉시, 측점번호 수정은 잔여거리가 이미 있을 때만 즉시. + anchorFields.remainder.addEventListener("change", () => commitPosition()); + anchorFields.station.addEventListener("change", () => { + if (anchorFields.remainder.value.trim() !== "") commitPosition(); + }); + // 그 외(잔여거리를 안 쓰는 정측점 입력 등)는 입력군에서 포커스가 완전히 빠져나간 + // 뒤에 확정한다 — 측점번호만 넣고 잔여거리 칸으로 옮기는 중간에는 나가지 않는다. + // Enter로도 바로 나갈 수 있다. positionRow.addEventListener("focusout", () => { // 다음 포커스 대상이 확정된 다음 프레임에 판단한다(relatedTarget은 브라우저에 // 따라 비어 온다).