Use per-output app CSS so non-focused monitors render one palette #3

Merged
Breadway merged 1 commit from fix/per-monitor-app-css into main 2026-09-03 13:15:23 +08:00
Owner

breadcast applied its own CSS only at display level via apply_app_css (session-global palette). bind_window_auto attaches the per-output shared sheet but not the app sheet, so on a monitor whose wallpaper differs the panel/chips/accents kept the global palette while shared-sheet widgets followed the output — a mixed palette on non-focused monitors (audit finding #2).

Switch to bind_window_auto_with_app_css(&window, css::build_css) so the app CSS is rebuilt against the per-output palette. The apply_app_css call stays as the display-level / SIGHUP fallback, matching breadbox/breadhelp/breadgreet.

clippy -D warnings clean; cargo test green (6 + 9 tests); cargo build --locked unchanged.

`breadcast` applied its own CSS only at display level via `apply_app_css` (session-global palette). `bind_window_auto` attaches the per-output *shared sheet* but not the app sheet, so on a monitor whose wallpaper differs the panel/chips/accents kept the global palette while shared-sheet widgets followed the output — a mixed palette on non-focused monitors (audit finding #2). Switch to `bind_window_auto_with_app_css(&window, css::build_css)` so the app CSS is rebuilt against the per-output palette. The `apply_app_css` call stays as the display-level / SIGHUP fallback, matching `breadbox`/`breadhelp`/`breadgreet`. clippy `-D warnings` clean; `cargo test` green (6 + 9 tests); `cargo build --locked` unchanged.
Sign in to join this conversation.
No reviewers
No labels
bug
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/breadcast!3
No description provided.