Skip to content

exam_math.hwp 2페이지부터 수식 더블클릭 hitTest 오동작 — 1페이지만 정상 #595

@edwardkim

Description

@edwardkim

현상

`samples/exam_math.hwp` 의 수식 객체를 더블클릭했을 때 수식 편집기가 나타나야 하지만, 1페이지만 정상 동작하고 2페이지부터 오동작.

오동작 시 `findPictureAtClick` 이 수식을 hit 으로 인식하지 못하여 일반 텍스트 hitTest fallback 으로 진입 → 의도하지 않은 위치로 캐럿 이동.

재현:

  1. rhwp-studio 에서 `samples/exam_math.hwp` 열기
  2. 1페이지의 수식 더블클릭 → 정상 동작 (수식 편집기 등장)
  3. 2페이지의 7번 문항 수식 (큰 수식, paraIdx=65 ci=0) 더블클릭 → 편집기 안 나타남 + 캐럿이 다른 위치로 이동

Rust 측 점검 결과 — 정합

`get_page_control_layout_native` 의 controls 배열에 page 2 의 7번 문항 수식이 정상 수집됨:

paraIdx ci x y w h
64 0 622.1 150.7 27.8 15.0
64 1 739.9 150.7 9.8 15.0
65 0 589.5 191.7 131.7 37.3
66 0 657.5 255.4 26.8 15.0
67 0..4 570.8~912.8 296.1 7~14 15.0

bbox 좌표는 모두 페이지 내부 좌표 (page 2 의 모든 y < 1390). rust 측 데이터는 정합.

TS 측 의심 영역

`rhwp-studio/src/engine/input-handler-mouse.ts` 의 page 좌표 계산:

```ts
const pageIdx = this.virtualScroll.getPageAtY(contentY);
const pageX = (contentX - pageLeft) / zoom;
const pageY = (contentY - pageOffset) / zoom;
```

후속 진단 후보:

  • (a) `virtualScroll.getPageAtY(contentY)` 가 page 2 를 page 1 로 잘못 반환 → `getPageControlLayout(잘못된 page)` 결과와 매칭 실패
  • (b) `pageOffset` 차감 누적 갭 → pageY 부정합
  • (c) page 2 부터 `pictureObjectRenderer` 또는 `active` 상태 비활성화

진단 단계 (제안)

  1. `findPictureAtClick` 진입부에 임시 디버그 로그 추가 — pageIdx, pageX, pageY, layout.controls 길이, 매칭 시도 영역
  2. 사용자 콘솔 로그 분석 → 위 후보 (a)/(b)/(c) 중 어느 영역인지 좁히기
  3. 본질 정정 + 회귀 테스트 + 시각 판정

메모

  • 본 이슈는 PR fix: LaTeX 분수 수식 미리보기 파싱 보정 (#143 1차) #563 (LaTeX 분수 미리보기) 처리 사이클 중 작업지시자가 발견하여 분리 등록.
  • 1페이지 정상 / 2페이지부터 오동작이라는 매우 구체적 증상 → multi-page 좌표 변환 영역 가설 유력.
  • `feedback_process_must_follow` 정합으로 별도 task 사이클 분리.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions