공용 common_util_view_window(viewOf · frameOf) 신설. design_profile rebuild · 접기 · render, Heights 높이 맞춤, 표 · 유토곡선 크기 끌기, 유토곡선 세로창 미끄러짐, 끌기 뒤 그리기, ▲▼ · 방향키 길게 누르기, 배수유역도, 구조물 말풍선 — 메인 창 전역 틀 · 시계 대신 요소가 놓인 창 것. 새 시험 test_230_2_popout_frames(메인 창 틀 멈춤 흉내 · 새 창 패널 코드 훑기). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F3mdb91125mPoC6tpsQx4P
19 lines
1018 B
TypeScript
19 lines
1018 B
TypeScript
/* =============================================================================
|
|
* common_util_view_window.ts
|
|
* 요소가 지금 놓인 창 — 종단 패널을 새 창으로 빼면 그 창이다(230-1 · 230-2).
|
|
*
|
|
* 메인 창 전역 `requestAnimationFrame` · 시계를 쓰면, 새 창을 최대화해 메인 창이 가려질 때
|
|
* 브라우저가 메인 창 화면 틀을 멈추고 시계를 늦춰 휠 · 편집 · 다시 그리기가 멈췄다.
|
|
* 화면 틀 · 시계는 이 함수로 그 요소의 창에서 받는다.
|
|
* ========================================================================== */
|
|
|
|
/** 요소가 놓인 창(문서에 안 붙었으면 메인 창). */
|
|
export function viewOf(node: Node | null | undefined): Window {
|
|
return node?.ownerDocument?.defaultView ?? window;
|
|
}
|
|
|
|
/** 요소가 놓인 창의 다음 화면 틀에 부른다. */
|
|
export function frameOf(node: Node | null | undefined, callback: FrameRequestCallback): number {
|
|
return viewOf(node).requestAnimationFrame(callback);
|
|
}
|