Skip to content

feature: frosted bars window placement#10

Merged
Charliechen114514 merged 6 commits into
mainfrom
feat/frosted-bars-window-placement
Jun 26, 2026
Merged

feature: frosted bars window placement#10
Charliechen114514 merged 6 commits into
mainfrom
feat/frosted-bars-window-placement

Conversation

@Charliechen114514

Copy link
Copy Markdown
Member

No description provided.

…ment

Add a frosted-glass (acrylic) renderer for the top status bar and the bottom
taskbar, plus a window-placement policy that keeps external application
windows inside the desktop work area.

Frosted backdrop:
- New FrostedBackdrop component (cached: downsample -> separable box blur ->
  surface tint -> acrylic grain) paints the blurred wallpaper strip behind
  each bar. The wallpaper shell now spans the full host geometry so the strip
  is sampled from directly behind each bar.
- StatusBar and CenteredTaskbar paint the frosted strip; the status bar fades
  only the content layer on boot so the glass stays opaque. A resize debounce
  keeps the reblur cost off the idle/resize paths.

Window placement:
- New WindowPlacementPolicy (pure IWindow + QRect, zero platform branches):
  centers external windows into the work area on appearance, proportionally
  shrinking to fit when larger than the work area, and leaves already-inside
  windows where they are.
- Re-constrains every tracked window when the desktop is resized OR moved
  (CFDesktop::geometryChanged covers the pure-move case; the work area is
  translated to screen coordinates to match window geometry, which is
  root-relative). Runtime toggle via config window_management /
  constrain_to_workarea (default on).

GoogleTest coverage for both components; doxygen and the three-layer check
pass.
Replace the placeholder initial-letter tiles and the 2x2 grid glyph with
monochrome PNG masks tinted at runtime to the active theme's on-surface
token (QPainter::CompositionMode_SourceIn), mirroring the status bar's
icon pipeline. Adds a header-only tintedIconMask() helper, a
taskbar_icons.qrc bundling five CFDesktop-original 96px masks (files,
terminal, settings, browser, start) with editable SVG sources, and
graceful fallbacks (initial letter / 2x2 grid) when a mask is missing.

- defaultApps() points each entry at its qrc icon path.
- TaskbarIcon / StartButton cache a tinted QPixmap and re-tint on theme
  change; tiles gain tooltips (display name / "Start").
@Charliechen114514 Charliechen114514 merged commit 17842e1 into main Jun 26, 2026
6 checks passed
@Charliechen114514 Charliechen114514 deleted the feat/frosted-bars-window-placement branch June 26, 2026 16:55
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.

1 participant