Skip to content

rhwp-studio: Ctrl+N,M 단축키 영역 영역 chordMapN 영역 영역 'm' 매핑 부재 → 브라우저 새 창 발생 (PR #739 후속) #767

@edwardkim

Description

@edwardkim

증상

rhwp-studio 영역 영역 `Ctrl+N+M` 단축키 영역 영역 입력 → 수식 신규 삽입 시도 시 브라우저 새 창 영역 영역 발생.

재현 절차

  1. rhwp-studio dev server 실행
  2. 입력 메뉴 영역 영역 "수식 (Ctrl+N,M)" 항목 영역 영역 등록 영역 영역 (PR 수식 신규 입력: insertEquation WASM API + 입력 메뉴 항목 #739 영역 영역)
  3. `Ctrl+N` 영역 영역 `M` 단축키 입력
  4. 브라우저 새 창 영역 영역 발생 영역 영역 (수식 삽입 영역 영역 미동작)

본 환경 점검 결과

단축키 처리 흐름 (`input-handler-keyboard.ts`)

1. `handleCtrlKey()` 영역 영역 `Ctrl+N` 영역 영역 `_pendingChordN` flag 영역 영역 활성화

```typescript
if ((e.key === 'n' || e.key === 'N' || e.key === 'ㅜ') && !e.shiftKey && !e.altKey) {
e.preventDefault();
this._pendingChordN = true;
return;
}
```

→ `Ctrl+N` 영역 영역 의 `e.preventDefault()` 영역 영역 호출 영역 영역 ✅, 그러나 작업지시자 영역 영역 영역 "브라우저 새 창 발생" 영역 영역 보고.

2. `chordMapN` 영역 영역 `m` 매핑 부재

```typescript
const chordMapN: Record<string, string> = {
n: 'insert:footnote',
ㅜ: 'insert:footnote', // 한글 IME
s: 'page:hide',
ㄴ: 'page:hide', // 한글 IME
// ❌ 'm' 매핑 부재 — PR #739 영역 영역 신규 `insert:equation` 영역 영역 등록 부재
};
```

`insert.ts` 영역 영역 `shortcutLabel: 'Ctrl+N,M'` 영역 영역 명시 영역 영역, 그러나 `chordMapN` 영역 영역 `m` 매핑 부재 영역 영역 → 두 번째 키 `M` 영역 영역 dispatch 미동작.

진단

두 결함 영역 영역 동시 발생 영역 영역 점검:

결함 A — `chordMapN` 영역 영역 `m: 'insert:equation'` 매핑 부재 (확정)

PR #739 영역 영역 `insert:equation` 영역 영역 `shortcutLabel: 'Ctrl+N,M'` 명시 영역 영역, 그러나 `chordMapN` 영역 영역 영역 등록 영역 영역. `m` (영문) + `ㅡ` (한글 IME) 영역 영역 모두 매핑 추가 필요.

결함 B — `Ctrl+N` 영역 영역 의 brower default 영역 영역 새 창 (점검 필요)

`handleCtrlKey()` 영역 영역 `e.preventDefault()` 영역 영역 호출 영역 영역 ✅ — 그러나 작업지시자 영역 영역 영역 "브라우저 새 창 발생" 보고. 점검 가능성:

  • `handleCtrlKey()` 영역 영역 호출 시점 영역 영역 영역 영역 — keydown 영역 영역 의 다른 핸들러 영역 영역 가로채기 영역 영역
  • `active` flag 영역 영역 의 false 영역 영역 영역 영역 → `if (!this.active) return;` 영역 영역 의 조기 종료
  • 영역 영역 영역 영역 영역 영역 OS 영역 영역 의 가로채기 영역 영역 (Windows + Chrome 영역 영역 영역 `Ctrl+N` 영역 영역 OS-level 가로채기 가능성 영역 영역)

처리 방향 (제안)

옵션 A — `chordMapN` 영역 영역 `m: 'insert:equation'` 추가 (필수)

```typescript
const chordMapN: Record<string, string> = {
n: 'insert:footnote',
ㅜ: 'insert:footnote',
s: 'page:hide',
ㄴ: 'page:hide',
m: 'insert:equation', // 추가
ㅡ: 'insert:equation', // 한글 IME 추가
};
```

옵션 B — 다른 단축키 영역 영역 변경 (브라우저 충돌 회피)

`Ctrl+N` 영역 영역 영역 브라우저 영역 영역 영역 영역 영역 영역 가로채기 영역 영역 가능성 영역 영역 → 다른 단축키 (예: `Ctrl+E` / `F2` / `Alt+M` 등) 영역 영역 변경. 한컴 표준 `Ctrl+N+M` 영역 영역 영역 호환 영역 영역 별 단축키 추가.

관련

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions