11차 뒤 G-1 기록: 300% 모니터에서 최대화하면 오른쪽 넘침 (플랫폼 고치고 배포)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
c99723181e
commit
3c8d33f8be
@ -1001,3 +1001,54 @@ libgit2 의 다듬기(`PrettifyMessages`)를 켜면 **손대지 않은 뒤 커
|
||||
|
||||
- 하네스 22벌 **1,159건** 통과(1,147 → +12) · 빌드 경고 0 · 오류 0.
|
||||
- 이미 설정 파일이 있는 PC 는 그 값을 그대로 쓴다. 이번 변경은 **설정이 없는 첫 실행**에만 닿는다.
|
||||
|
||||
## G. 11차 뒤 추가 (2026-09-23 사용자 증상)
|
||||
|
||||
### G-1. 배율이 크게 다른 새 모니터에서 최대화하면 오른쪽이 넘침 (2026-09-23, 완료 — 플랫폼 배포함)
|
||||
|
||||
사용자 증상: "지금 모니터 새로운거 열었는데 최대화하면 화면이 짤려 오른쪽으로 넘쳐".
|
||||
|
||||
F-7 은 **창 모드로 기억한 자리**를 고친 것이라 최대화는 손대지 않았다. 이번은 최대화 자체다.
|
||||
|
||||
### 잰 것 (쓰던 창은 건드리지 않고 읽기만 → 시험용 창으로 되풀이)
|
||||
|
||||
| 무엇 | 값 |
|
||||
|---|---|
|
||||
| 주 모니터 | 2560×1600 · 150% (작업 영역 2560×1528) |
|
||||
| 새 모니터 | 3840×2160 · **300%** (작업 영역 3840×2016) |
|
||||
| 새 모니터에서 최대화한 창 | **5120×2186** — 오른쪽 **1280px** · 아래 170px 모니터 밖 |
|
||||
| 모니터 밖으로 나간 화면 요소 | 25개(시계 · 모듈 · 최근 칸 등) |
|
||||
| 주 모니터에서 최대화 | 2560×1600 — 넘침 0(정상) |
|
||||
|
||||
- 처음 잰 값이 뒤섞여 보였다(주 150% · 새 300%) — 재는 스크립트를 **배율을 아는 상태(PerMonitorV2)** 로 돌려야 실제 픽셀이 나온다.
|
||||
|
||||
### 까닭
|
||||
|
||||
- 실행 중인 셸 창의 DPI 인식을 물어보니 **모니터별 V1**(PerMonitorV2 아님). 매니페스트에는 `PerMonitorV2, PerMonitor` 가 적혀 있고 exe 에도 박혀 있지만, .NET Framework WPF 가 V1 로 올린다.
|
||||
- V1 창에서 `WM_GETMINMAXINFO` 에 모니터 크기를 줘도 윈도가 더 크게 잡는다. 값을 바꿔 가며 재 보니 **작은 값은 그대로 따르고**(1920×1080 · 2560×1440), 어느 한도를 넘으면 가로가 1280px 더 붙고 세로는 2186 에 고정됐다(3000×2000 → 4280×2186, 3840×2160 → 5120×2186).
|
||||
- 윈도 기본값에 맡겨도(우리가 손대지 않아도) 3874×2186 으로 테두리만큼 넘쳤다.
|
||||
|
||||
### 고친 것 (플랫폼)
|
||||
|
||||
- `ShellWindow.FitMaximizedToMonitor` — 최대화된 창이 그 모니터와 다르면 **한 번 다시 놓는다**. 상태 바뀜 · 배율 바뀜 · 켤 때부터 최대화인 세 자리에 건다.
|
||||
- 판단은 화면 없이 검사하는 `WindowPlacementMath.NeedsMaximizeFix`(자리 · 크기가 모니터와 같으면 하지 않는다 — 되풀이 방지).
|
||||
- 최대화가 작업 표시줄까지 덮는 정책(7차 E-4 사용자 결정)은 그대로다.
|
||||
|
||||
### 확인
|
||||
|
||||
| 경우 | 고치기 전 | 고친 뒤 |
|
||||
|---|---|---|
|
||||
| 새 모니터(300%) 최대화 | 5120×2186 · 오른쪽 1280px 넘침 | **3840×2160 · 넘침 0** |
|
||||
| 되풀이 최대화 · 복원 | 같은 값으로 계속 넘침 | 3840×2160 그대로 |
|
||||
| 주 모니터(150%) 최대화 | 2560×1600 | 2560×1600 (달라지지 않음) |
|
||||
| 두 모니터 왕복 | — | 각 모니터에 맞음 |
|
||||
| 최대화 때 모니터 밖 화면 요소 | 25개 | **0개** |
|
||||
|
||||
- PlacementTest **+6(45 → 51건)**. 플랫폼 Debug 빌드 경고 0 · 오류 0.
|
||||
- 배포: 사용자 "배포해 줘" 뒤 `publish-platform.ps1`(2026-09-23, 경고 0 · 오류 0 — 42개 가운데 `UbisamBase.Core.dll` · `UbisamBase.Shell.exe` · `README.txt` 셋). MergeHub Debug 를 다시 빌드해 `Core.dll` 해시가 배포본과 같음을 확인하고, 배포본으로 같은 시험을 다시 돌려 넘침 0.
|
||||
|
||||
### 남은 것
|
||||
|
||||
- 근본은 **셸이 모니터별 V1** 이라는 점이다. V2 로 올리려면 WPF 보다 먼저 프로세스 DPI 인식을 정해야 하는데(.NET Framework WPF 는 V1 전제), 모든 소비 프로그램의 창틀 · 그리기에 영향이 커서 이번에는 하지 않았다. 다른 배율 관련 증상이 또 나오면 그때 함께 본다.
|
||||
- 300% 모니터에서는 **창 모드 최소 크기가 곧 모니터 폭**이다(최소 1280 DIP = 3840px). 그 화면의 논리 폭이 1280 DIP 뿐이라 그런 것으로, 창을 그보다 좁게 만들 수는 없다.
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
|
||||
| 날짜 | 항목 | 커밋 |
|
||||
|---|---|---|
|
||||
| 2026-09-23 | **11차 뒤 G-1** — "새 모니터 열었는데 최대화하면 오른쪽으로 넘쳐": 주 150% 옆 **300%** 모니터에서 최대화하면 창이 5120×2186 이 되어 오른쪽 1280px · 아래 170px 이 화면 밖으로 나갔다(요소 25개). 셸이 .NET Framework WPF 라 DPI 인식이 모니터별 V1 에 머물러 윈도가 최대화 크기를 더 크게 잡는 것. 최대화된 뒤 그 모니터 크기와 다르면 한 번 다시 놓게 고침(플랫폼 changelog, 배포함). 넘침 0 · 모니터 밖 요소 0 · 주 모니터 동작 그대로 | 아래 |
|
||||
| 2026-09-23 | **11차 F-11** — Git 원격 인증: 껐다 켜면 URL · 계정 · 토큰이 모두 비어 매번 다시 넣어야 했다. URL · 계정은 Git 탭에 적으면 설정에 남기고(0.8초 모아 한 번), 토큰은 fetch · pull · push · 클론이 **성공했을 때만** 윈도 자격 증명 관리자에 맡긴다(`GitCredentialStore` — 서버마다 한 이름, 설정 파일에는 토큰 글자 없음, SSH · 로컬 경로는 저장 안 함). 켤 때 · 주소를 바꿀 때 그 서버 토큰만 가져오고, 다른 서버로 바꾸면 앞 서버 토큰은 치운다. [토큰 지우기] 단추 · "저장됨" 표시. 인증 실패는 영어 대신 무엇을 하라는 한글 문장으로 | 아래 |
|
||||
| 2026-09-22 | **11차 F-10** — Araxis 식 화면: 칸마다 자기 줄만(빈 줄로 높이를 맞추지 않음), 두 칸(3분할은 위 세 칸) 사이 틈에 바뀐 덩어리마다 사다리꼴 잇는 선 · 칸 안 경계선(한쪽에 없으면 굵은 선 하나) · 옮긴 덩어리는 청록 점선. 스크롤은 가운데 기준으로 따라옴(`PaneMapping` — 함께 있는 줄 가운데를 짝점, 사이는 비율). 속의 정렬 행은 그대로라 반영 · 되돌리기 · 차이 이동이 그대로 동작. 편집기에서 빈 줄을 없애 `StripFillers` 를 지움(편집기 줄 ↔ 행 표). 지운 줄 [>] 는 BASE 칸 끝, 차이 이동은 가운데로 | 아래 |
|
||||
| 2026-09-22 | **11차 F-9** — 저장할 때 백업: 설정 "저장할 때 백업"(기본 끔)을 켜면 모든 저장(두 파일 · mergetool · Save & Commit · 병합 중 Save · 파일 단위 Accept · 폴더 비교 복사) 직전에 지금 파일을 바이트 그대로 `{설정 폴더}\Backup\MergeHub\날짜\드라이브\원래 폴더\이름.날짜-시각.확장자` 로 복사(`FileBackup`, 날짜 폴더마다 목록.txt, 저절로 안 지움 — 사용자 결정). 원본 폴더 · 저장소 밖이라 폴더 비교 · 변경분 · git status 에 안 섞임. 못 만들면 저장하지 않음 | 아래 |
|
||||
|
||||
@ -384,6 +384,12 @@
|
||||
| **완료** | F-12 C# 코드 스타일 맞춤 기본값을 AURORA 로 (2026-09-18 사용자 결정) — 설정 없는 첫 실행에서 AURORA, 중괄호만 다른 C# 짝 "차이 없음" · 같은 모양의 C++ 짝은 "남은 차이 4줄"(원본 그대로). 저장 동작은 그대로. 하네스 StyleTest +12(90건) |
|
||||
|
||||
---
|
||||
### G. 11차 뒤 추가 (2026-09-23 사용자 증상)
|
||||
|
||||
| 상태 | 항목 |
|
||||
|---|---|
|
||||
| **완료** | G-1 배율이 크게 다른 새 모니터(3840×2160 · 300%)에서 최대화하면 오른쪽 1280px · 아래 170px 이 화면 밖으로 — 셸이 모니터별 V1 이라 최대화 크기를 윈도가 더 크게 잡았다. 최대화된 뒤 그 모니터 크기와 다르면 한 번 다시 놓게 고침(플랫폼 `FitMaximizedToMonitor`). 넘침 0 · 모니터 밖 요소 0개. PlacementTest +6(51건). **플랫폼 배포함**(2026-09-23) |
|
||||
|
||||
## 3~4주차로 미룬 것
|
||||
|
||||
디테일이라 지금 붙잡을 일이 아니다.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user