Conversation
모양/소리/장면 리스트에서 아이템 순서를 바꾸면 setData 리렌더 과정에서 내부 스크롤 컨테이너(.rcs-inner-container)의 스크롤이 맨 위로 초기화되던 문제를 수정. setData 호출 전후로 scrollTop/scrollLeft를 보존하는 Entry.Utils.runWithScrollPreserved 헬퍼를 추가하고 각 updateView에 적용. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
키 입력을 받는 숨겨진 input이 document.body에 위치해 네이티브 전체화면 진입 시 전체화면 엘리먼트의 top-layer 밖이 되어 포커스를 받지 못하던 문제. 포커스 시점과 fullscreenchange 시 input을 현재 fullscreenElement 하위로 이동시켜 해결. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chanlee
approved these changes
Jun 25, 2026
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
prisml
approved these changes
Jun 25, 2026
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.
작업 내용
작품 실행 중
묻고 기다리기(ask) 블록이 띄우는 텍스트 입력창이, 우하단 전체 화면 버튼으로 네이티브 전체화면에 진입하면 입력이 되지 않던 문제를 수정합니다.원인
캔버스에 보이는 입력창(
PIXICanvasInput/CanvasInput)은 시각적 표현만 캔버스에 그려지고, 실제 키보드 입력은 별도의 숨겨진<input>(.entryCanvasHiddenInput)이 받습니다. 이 숨겨진 input은document.body바로 아래에 붙습니다.전체 화면 버튼은
.entry.minimize엘리먼트에 네이티브 Fullscreen API(requestFullscreen)를 적용하는데, Fullscreen API 규약상 전체화면 엘리먼트와 그 하위 요소만 top-layer에서 포커스/키 입력을 받을 수 있습니다. 숨겨진 input은document.body의 직속 자식이라 전체화면 엘리먼트 바깥에 위치하게 되어:_hiddenInput.focus()가 조용히 무시됨 (top-layer 밖이라 포커스 불가)수정 방법
숨겨진 input(및 모바일 임시 form)이 항상 현재 전체화면 엘리먼트의 하위에 있도록 보장합니다.
document.fullscreenElement || document.webkitFullscreenElement가 있으면 그쪽으로, 없으면document.body로 이동시킵니다.CanvasInput.js,PIXICanvasInput.js):_hiddenInput.focus()호출 직전, input이 현재 전체화면 엘리먼트 하위가 아니면 그쪽으로 reparent. → "전체화면 상태에서 입력창을 띄우고 클릭"하는 흐름 커버stage.js): 전체화면 진입/이탈 시 현재 입력창의 숨겨진 input을 재배치하고, 포커스 상태였다면 다시 focus. → "입력창이 떠 있는 상태에서 전체화면을 토글"하는 케이스 커버숨겨진 input은
position:absolute; opacity:0; pointerEvents:none이라 부모가 바뀌어도 화면상 영향이 없습니다.변경 파일
extern/util/CanvasInput.js— 포커스 시점 reparent 가드 (비-WebGL)src/class/pixi/etc/PIXICanvasInput.js— 포커스 시점 reparent 가드 (WebGL)src/class/stage.js—fullscreenchange/webkitfullscreenchange리스너 등록 및 재배치 로직