# v0.1.540 — QA-086 [B] 서브윈도우 이동·리사이즈 부착 (사이클1: Modbus 매핑 패널)

- 버전: v0.1.540
- 날짜: 2026-06-03
- 다운로드: [factory00-windows-x64-v0.1.540.zip](../../downloads/factory00-windows-x64-v0.1.540.zip) (170 MB)
- 캡처: [qa-screenshots/v0.1.540/](../../qa-screenshots/v0.1.540/)

---

## 협업자 QA-086 [B] / spec S0055 P2 (서브윈도우 이동·리사이즈)
- 인프라(C1 SubWindowLayout/IResizableWindow + C2 SubWindowLayoutStore PlayerPrefs + C3 ResizableWindowController 드래그/8방향리사이즈/clamp + EventBus)는 이전 사이클에 완성·critic 통과. 본 사이클 = P2 패널 부착 시작.
- 사이클1: ModbusAddressMappingPanel 부착 (5개 서브윈도우 중 _root.Clear() 리스크 최대 → 옵션 A 패턴 먼저 확립).
- 옵션 A (2층 분리): _root(Clear 안 함, titleBar + contentRoot + 리사이즈 핸들 8개) / _contentRoot(Render 가 이것만 Clear). 기존 Render 의 _root.Clear() 가 리사이즈 핸들을 삭제하던 회귀 차단.
- IResizableWindow 구현(WindowId / MinSize 360x220 / MaxSize 무제한 / Default 16,110,520,600) + Build 에서 Attach. 타이틀바 드래그 이동 + 8방향 리사이즈 + 최소크기 + PlayerPrefs 위치/크기 영속 + 복원.
- [A] z-order SendToBack 유지 (BringToFront 미추가 → 계층 불변).
## 영향 파일
- 수정: `Assets/Scripts/Communication/Modbus/ModbusAddressMappingPanel.cs` (IResizableWindow + 2층 분리 + Attach)
- 기존 인프라(무변경): `Assets/Scripts/UI/{SubWindowLayout,SubWindowLayoutStore,ResizableWindowController}.cs`, `Events/SubWindowEvents.cs`
## 검증
- 컴파일 + Stage 2: Modbus 매핑 패널 타이틀바 드래그 이동 / 8방향 테두리 리사이즈 / 최소크기 / 닫았다 열면 위치 복원. (마우스 드래그 = 헤드리스 자동검증 불가, Stage 2 PC 의무)
- 나머지 4개 패널(PLC매핑/시그널시뮬/ModbusTCP/미쓰비시) 부착은 사이클 2(critic 의무).
