Docs |   A-  |  A+   | -/-

SumatraPDF 검색 입력 자동 실행 제어 옵션 추가 계획

목표

검색 입력창(Find)에서 타이핑할 때마다 자동 검색이 실행되는 현재 동작을 옵션화하여, 옵션이 꺼져 있을 때는 Enter(또는 F3/Shift+F3) 로만 검색이 실행되게 한다.


현재 코드 동작 분석

1) 타이핑 시 자동 검색 트리거 위치

즉, 자동 검색은 툴바 Edit 컨트롤의 EN_UPDATE 처리로 구현되어 있음.

2) Enter/F3 검색 경로

즉, 자동검색을 끄더라도 Enter/F3 기반 검색은 기존 구조로 자연스럽게 유지 가능.

3) 설정(Advanced options) 정의 위치


구현 계획

1. 새 고급 설정 추가

cmd/gen-settings.ts의 GlobalPrefs 필드 목록에 bool 설정 추가:

왜 기본값 true인가: - 기존 사용자 동작을 깨지 않음 (하위 호환) - IME 사용자/원하는 사용자만 명시적으로 끌 수 있음

대안: 기본값을 false로 둘 수도 있으나 기존 UX 변화 폭이 크므로 비권장.


2. 설정 코드 생성 반영

아래를 실행해 생성물 갱신:

예상 반영 파일: - src/Settings.h (GlobalPrefs struct + metadata) - 고급 설정 문서 파일(생성 스크립트가 관리하는 문서)

주의: - 생성 파일을 수동 편집하지 않고 스크립트로 갱신해야 일관성 유지.


3. 자동 검색 분기 조건에 옵션 반영

src/Toolbar.cpp의 자동검색 조건(EN_UPDATE)에 새 옵션 체크 추가:

현재(개념): - ... && gGlobalPrefs->showToolbar

변경 후(개념): - ... && gGlobalPrefs->showToolbar && gGlobalPrefs->findAsYouType

실제 적용 위치: - src/Toolbar.cpp:550 조건문 - 검색 실행 호출부는 그대로 유지 (FindTextOnThread(..., false))

효과: - FindAsYouType = false일 때 IME 조합 중 EN_UPDATE가 와도 자동 검색 미실행 - Enter/F3 검색 경로는 그대로 동작


4. 동작 검증 계획

기능 검증

  1. FindAsYouType = true
    • 영어 입력 시 기존처럼 자동 검색되는지
    • Enter/F3도 정상 동작하는지
  2. FindAsYouType = false
    • 타이핑 중 검색이 실행되지 않는지
    • Enter로 검색 실행되는지
    • Shift+Enter, F3/Shift+F3로 다음/이전 검색 정상인지
  3. 한글 IME 테스트
    • 조합 중(미완성) 입력에서 불필요 검색이 발생하지 않는지
    • 조합 완료 후 Enter 시 정상 검색되는지

회귀 검증

빌드 검증


5. 문서/릴리즈 노트 반영(권장)

옵션이 사용자 노출되는 고급 설정이므로 다음 반영 권장:

(고급 설정 본문 문서는 gen-settings.ts 생성물로 자동 반영될 가능성이 큼)


변경 파일 예상 목록


리스크 및 대응


완료 기준 (Definition of Done)