← 목록
기타 2026-07-17 3KB 읽기 3분

크라우니 오피스 슬라이드 punch #5 — 슬라이드쇼 전체화면 재생 + 키보드

개요

슬라이드(Slides) 모듈은 편집/발표자/아웃라인 모드만 있고 전체화면 슬라이드쇼 재생이 없었고, componentDidMount 부재로 키보드 리스너가 전무(←→ 이동·Esc 종료·B 블랙아웃 미구현)했다. crownyBridge.js §20 installSlideBridge 확장으로 앱 번들 무수정 + 런타임 몽키패치만으로 완성.

무엇을 했는지

  • 슬라이드쇼 전체화면 재생: 최상위 fixed 오버레이(z-index 2147483600, 16:9 스테이지) + Fullscreen API.
slides[cur] 데이터·kind 레이아웃(title=다크 풀커버·bullets=불릿 라인·split/chart/blank=본문 크게)을 punch#1·#4 팔레트 재사용해 렌더. 페이지 인디케이터 n/N. 좌클릭 전진·✕ 종료.
  • 키보드 내비: 슬라이드쇼 동안에만 window 캡처 keydown 부착(시트 punch#6 stopImmediatePropagation
게이트 이식) — →/Space=다음·←=이전·Home/End=처음/끝·Esc=종료·B=블랙아웃(내용 숨김)·F=전체화면. 처리한 키만 삼켜 앱 셸(⌘1~9) 선점, 종료 시 리스너 완전 해제(게이트: 재생 아닐 때 키 비활성).
  • 진입: 원본 정적 span "발표 시작 ⌘⏎"을 실배선(wirePlayTrigger, guard=data-crowny-play) +
⌘⏎ window 캡처(슬라이드 편집 카드 가시일 때만 게이팅 — 홈/문서/시트 무간섭).
  • 한선씨 정본: 슬라이드쇼.한선 — 인덱스클램프·다음/이전/처음/끝·블랙아웃토글·종료 상태기계.
hanseonc_high 컴파일 + crownyc run 자체시험 15/15.

게이트 결과

  • 슬라이드쇼.한선 자체시험: 15/15 PASS
  • crownyBridge.js node -c 문법 OK
  • 문서 회귀: 27/27 PASS (무회귀)
  • 슬라이드 punch#5 CDP 실측(:9333): 17/17 PASS — 실 Input.dispatchKeyEvent(트러스티드 키)로
재생→오버레이·인디케이터·→다음/←이전·맨끝클램프·B블랙아웃(내용숨김)·Esc종료·편집복귀·종료후 키게이트 무효. 트리거 배선+클릭재생 별도 확인 PASS. 슬라이드 #1~#4(캔버스 sig·재정렬/레이아웃 함수·노트배선) 무회귀.

관련 파일

  • /Users/ef/crownybrowser/bundle/office/bridge/crownyBridge.js §20 (installSlideBridge punch #5 추가)
  • /Users/ef/crownybrowser/bundle/office/bridge/슬라이드쇼.한선 (상태기계 정본, 15/15)
  • /Users/ef/crownybrowser/spec/슬라이드기능-판정표.md (3개 행 "없음"→"실작동 punch#5 완료" 갱신)

무수정 확인

앱 번들 index.html·crowny-browser.m·crowny-shell.m·Makefile 기존타깃·시트 §19 전부 무수정.

잔여 이슈

  • 아웃라인 Enter/Tab 편집(판정표 line77)은 이번 punch 범위(슬라이드쇼 재생+키보드) 밖 — 별도 punch.
  • 전환 효과(trans/dur) 실적용은 punch #7(#5 선행 완료로 착수 가능).
  • Fullscreen API 는 headless/차단 환경에서 fixed 오버레이로 폴백(정상 동작 확인).

크라우니코드

lookup HIT 0건 / MISS 2건 / learn 1건(슬라이드쇼_재생_키보드내비_인덱스클램프_블랙아웃토글_종료게이트)