Skip to content

Add Viewer-controlled shared Windows themes (#118) - #138

Merged
chammoru merged 7 commits into
masterfrom
codex/issue-118-appearance
Oct 13, 2026
Merged

chammoru merged 7 commits into
masterfrom
codex/issue-118-appearance

Conversation

@chammoru

@chammoru chammoru commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

Closes #118. Windows MFC only; no Qt changes. The user has reviewed the applications and explicitly authorized merge and the subsequent 2.8.0 release after disclosure of the native 200% testing limitation.

  • Viewer alone exposes Options → Theme → System / Light / Dark. Comparator follows the same shared saved choice and live notifications, without another theme menu.
  • UI and image-surround colors change together, preserving source/capture pixels, media, zoom/pan, ROI, metrics, playback, selection/scroll and thumbnail caches. Legacy Canvas values are ignored, not deleted.
  • Retain Windows System notifications, high-contrast role colors, native caption/menu/scrollbar fallback, accessibility and bounded caches.
  • Timeline scrollbar matches the shared theme, supports hover/drag/full-width tracking, and hides for empty/still/fitting ranges; wheel movement is no longer doubled.
  • Complete buffered shared menu/control painting prevents default-color flashes. Help stays in place when zoom changes; reserved label width and targeted redraw avoid whole-menu repaint. Empty/loading Viewer canvases clear to the chosen canvas color.
  • Regression tests cover real window/control painting, source/capture preservation, GDI lifetime, accessible names, menu wrapping and stable zoom-button geometry.

Verification and limits

Local CoreRegressionTests and WindowsUiTypographyTests pass, including buffered/menu resource checks (warmed GDI 46/46). Full Viewer integration passes 830 checks and startup passes 39 at each native 125/150/175% scale. Previously completed actual System Light → Dark → Light and Night sky contrast on/off checks preserved loaded sources, zoom, frame and ROI/results; contrast scrollbar mouse/keyboard fallback was exercised. Active Windows and app settings were restored.

The shared native evidence also records the separately delivered #139 comparison work and its 690-check Comparator integration runs; that feature code is not in this PR. High-DPI comparison panel sizing is delivered with #139. This PR's focused shared changes plus #139 form the reviewed final build.

Native 200% remains unverified because this monitor's regular scale list ends at 175%; 192-DPI font/layout calculations are tested, not presented as a native 200% run. One PC and one contrast scheme do not establish every Windows version or popup state. These limits were disclosed before the user's delivery approval.

Evidence: theme verification, actual OS acceptance.

Local development version stays 0.0.0-dev; the later tagged Actions release supplies 2.8.0. Existing untracked design work is excluded. Packaging/signing/GitHub Release/Store completion belongs to that asynchronous tagged workflow, not this PR's local checks.

한국어

Viewer에만 테마 메뉴를 두고 Comparator가 공통 설정을 따릅니다. Timeline 스크롤바와 메뉴 깜빡임도 수정했습니다. 실제 Windows 테마·고대비 전환 및 125/150/175% 검증을 마쳤고 원래 설정으로 복원했습니다. 200%는 계산 검사만 통과했으며 실화면 검증은 하지 못했다는 한계를 안내한 뒤, 사용자가 별도 PR 병합과 2.8.0 릴리즈를 승인했습니다. #139 다중 비교 기능 코드는 이 PR에 넣지 않았습니다.

@chammoru chammoru changed the title Add Windows appearance themes and independent image backgrounds (#118) Add unified Windows themes in Options (#118) Oct 10, 2026
@chammoru chammoru changed the title Add unified Windows themes in Options (#118) Add Viewer-controlled shared Windows themes (#118) Oct 10, 2026
@chammoru
chammoru marked this pull request as ready for review October 13, 2026 21:37
@chammoru
chammoru merged commit c7a94fa into master Oct 13, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows UI redesign: Add coherent appearance themes without changing image pixels

1 participant