Task #661: 드래그 선택 중 커서/스크롤 튐 정정 (closes #661)#718
Open
postmelee wants to merge 6 commits intoedwardkim:develfrom
Open
Task #661: 드래그 선택 중 커서/스크롤 튐 정정 (closes #661)#718postmelee wants to merge 6 commits intoedwardkim:develfrom
postmelee wants to merge 6 commits intoedwardkim:develfrom
Conversation
edwardkim
added a commit
that referenced
this pull request
May 8, 2026
closes #658 4 commits 단계별 보존 (작업지시자 직접 결정): - e0ce874 Task #658: Add selection rect diagnostics - f3c7fc0 Task #658: Fix selection rect line boundaries - 99b3a5a Task #658: Reduce selection drag DOM churn - 5fa80bf Task #658: Finalize selection drag fix report 본질 정정: - 선택 rect 시작/끝 위치 영역의 cursor hit bias 영역 추가 — 줄바꿈 경계 영역 영역의 같은 문자 오프셋 영역 영역 이전 줄 끝 vs 다음 줄 시작 영역 구분 - SelectionRenderer 영역의 highlight div 영역 재사용 + 동일 rect 반복 렌더링 skip 영역 (DOM churn 영역 정정) - 드래그 영역 caret 업데이트 영역 가벼운 처리 영역 경로 추가 본 환경 검증: - cherry-pick 충돌 0건 (orders/20260507.md 자동 머지) - cargo test --release ALL PASS (1165 lib + issue_658 2/2) - TypeScript 빌드 통과 - clippy clean PR: #664 컨트리뷰터: @postmelee (Taegyu Lee) 후속 분리: #661 (드래그 시작 영역 영역 커서/스크롤 위치 튐 영역) → PR #718 영역
edwardkim
added a commit
that referenced
this pull request
May 8, 2026
PR #664 (Task #658): rhwp-studio 드래그 선택 하이라이트 오버플로우 수정 - merge commit: c6bf769 (4 commits 단계별 보존 no-ff merge — 작업지시자 직접 결정) - 본질 정정: cursor hit bias (cursor_nav.rs +118/-53) + selection-renderer DOM churn 정정 - 본 환경 결정적 검증 1165 lib + issue_658 2/2 + TypeScript clean + clippy clean - WASM 빌드 4,584,723 bytes - 작업지시자 시각 판정 ★ 통과 (exam_social.hwp 드래그 선택 페이지 폭 안 정합) 컨트리뷰터: @postmelee (Taegyu Lee) — 다회 사이클 영역 (PR #663 close → #664 재제출) 후속 분리: #661 (드래그 시작 영역 영역 커서/스크롤 위치 튐 영역) → PR #718 영역 closes #658 산출물: - mydocs/pr/archives/pr_664_review.md - mydocs/pr/archives/pr_664_report.md - mydocs/orders/20260508.md 갱신
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.
Summary
rhwp-studio에서 텍스트 드래그 선택 중 커서와 스크롤 위치가 포인터와 무관하게 튀는 문제를 정정합니다. Closes rhwp-studio: 텍스트 드래그 선택 중 커서와 스크롤 위치가 튀는 현상 #661scrollCaretIntoView()를 호출하지 않고, 포인터가 편집 영역 상/하단 edge에 들어온 경우에만 별도 RAF 루프로 자동 스크롤합니다.mousemove를 드래그 동안만 등록하고 종료/dispose()에서 해제합니다.Root cause
변경 사항
InputHandler.updateCaretDuringDrag()추가updateCaret()과 달리scrollCaretIntoView()를 호출하지 않습니다.devel에 없는 선행 #664의CaretRenderer.updateLive()에 의존하지 않도록 기존CaretRenderer.update()를 사용합니다.startTextSelectionDrag()updateTextSelectionDragPointer()updateTextSelectionDragFromPointer()stopTextSelectionDrag()rhwp-studio/e2e/drag-selection-autoscroll.test.mjs추가Test plan
cargo test— 1254 passed, 0 failed, 3 ignoredcargo clippy -- -D warningscd rhwp-studio && npm run buildcd rhwp-studio && CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" npm run e2e:drag-autoscroll -- --mode=headlessscrollTop:0 -> 1529hasSelection:trueselection.end.paragraphIndex:69highlightCount:70git diff --check upstream/devel...HEADPR 구성 메모
upstream/devel(de1c2d0)에서pr-task661브랜치를 새로 만들고 rhwp-studio: 텍스트 드래그 선택 중 커서와 스크롤 위치가 튀는 현상 #661 범위만 재적용했습니다.devel기준 diff에 섞이지 않도록 정리했습니다.CONTRIBUTING.md의 문서 위치 규칙에 맞춰mydocs/report/task_m100_661_report.md에 배치했습니다.관련 자료
mydocs/plans/task_m100_661.mdmydocs/plans/task_m100_661_impl.mdmydocs/working/task_m100_661_stage{1..4}.mdmydocs/report/task_m100_661_report.md