모디파이어 의존 제스처를 자동 검증에 넣는다 (1.3 3단계) - #51
Merged
Merged
Conversation
…휠 (1.3 3단계) 포인터 경로의 `Ctrl`/`Shift`는 실제 키보드를 읽는 정적 프로퍼티였고(`InputKeyboardSource`), 테스트는 그것을 정할 수 없어 이 동작들에 자동 검증이 **하나도 없었다**. 1단계에서 step으로 옮겨 놓았으므로 이제 구동된다. - 개체 끌기: 놓을 때 Ctrl이면 **복사**(원본 인스턴스가 문서에 남는 것으로 확인), 아니면 이동. - 텍스트 끌기: 놓을 때 Ctrl이면 복사 — 원본이 남고 "drag"가 둘이 된다. - Ctrl+클릭은 **포인터 아래** 링크를 열고, 평범한 클릭은 열지 않는다. - 뷰어(읽기 전용): 제자리 클릭은 링크를 열고, 링크 위를 **끌면 선택만** 된다(브라우저 규약). - 휠은 Ctrl일 때만 확대하고, 아닐 때는 처리하지 않는다(스크롤이 되어야 하므로). `OnCanvasPointerWheel`도 `PointerWheelCore(delta, ctrl)`로 분리 — 포인터 경로에 남아 있던 마지막 ambient 읽기였다. 테스트 seam 1개(`internal`): `RichEditor.LaunchOverride`. 어느 제스처가 링크를 여는지는 테스트 기계에서 브라우저를 띄우지 않고는 단정할 수 없었다. 결정(`IsLaunchableLink`)은 전부터 직접 시험돼 있고, 이제 거기 **닿는 경로**까지 덮는다. 반증 6종 전부 의도한 테스트만 빨강: 개체 드롭의 Ctrl 무시 · 텍스트 드롭의 Ctrl 무시 · Ctrl+클릭 분기 차단 · 뷰어 링크의 "선택 없음·슬롭 이내" 가드 제거 · 누르기의 Shift 무시 · 휠의 Ctrl 게이트 제거. ⚠ 휠 교란은 공유 에디터의 확대를 바꿔 좌표 테스트 하나를 함께 넘어뜨렸다(교란의 부수 효과, 제품 아님). 테스트 826 → 832. 공개 표면 변화 없음. 로드맵에 1~3단계 결과와 반증이 가르쳐 준 두 가지를 기록했다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1.3 상호작용 테스트의 마지막 단계. 테스트 826 → 832, 공개 표면 변화 없음.
왜 지금까지 검증이 없었나
포인터 경로의
Ctrl/Shift는 실제 키보드를 읽는 정적 프로퍼티였다(InputKeyboardSource.GetKeyStateForCurrentThread). 테스트가 그것을 정할 수 없으니 Ctrl 복사 끌기 · Ctrl+클릭 링크 · Shift 선택 · Ctrl+휠에는 자동 검증이 하나도 없었다. 1단계에서 모디파이어를PointerStep에 실어 두었으므로 이제 구동된다.들어간 검증
PointerWheelCore(delta, ctrl)로 분리 — 포인터 경로의 마지막 ambient 읽기였다테스트 seam 1개 (
internal, 공개 표면 아님)RichEditor.LaunchOverride— 어느 제스처가 링크를 여는지는 테스트 기계에서 브라우저를 띄우지 않고는 단정할 수 없었다. 결정 자체(IsLaunchableLink)는 전부터 직접 시험돼 있었고, 이제 거기 닿는 경로까지 덮는다.반증 6종 — 전부 의도한 테스트만 빨강
개체 드롭의 Ctrl 무시 · 텍스트 드롭의 Ctrl 무시 · Ctrl+클릭 분기 차단 · 뷰어 링크의 "선택 없음·슬롭 이내" 가드 제거 · 누르기의 Shift 무시 · 휠의 Ctrl 게이트 제거.
⚠ 휠 교란은 공유 에디터의 확대를 바꿔 좌표 테스트 하나를 함께 넘어뜨렸다 — 교란의 부수 효과지 제품 문제가 아니다.
로드맵
1~3단계 결과를 기록했고, 반증이 가르쳐 준 두 가지도 남겼다: 열 끌기 놓기 순서는 실제로 무해(캡처 상실이 완료시키고 멱등이라 — 순서 규칙은 취소하는 경로에서만 힘을 쓴다), 가짜가 캡처 상실을 동기로 안 쏘면 깨진 순서도 통과(그래서 호출 순서를 테스트가 직접 단정한다).
🤖 Generated with Claude Code