libcosmic-yoda/src
Lionel DARNIS 261a211647 header_bar: add WindowControlsPosition (macOS-style left controls)
Adds a new public enum `WindowControlsPosition { Start, End }` and a
matching field on `HeaderBar`, allowing window controls (close / minimize
/ maximize) to be packed on the start side of the headerbar (macOS
style, icon order close → minimize → maximize) instead of the default
end side (Linux / GNOME style, minimize → maximize → close).

Wiring:
- `crate::widget::WindowControlsPosition` re-exported alongside
  `HeaderBar`.
- `HeaderBar::controls_position(Option<WindowControlsPosition>)` setter;
  when left unset, falls back to `crate::config::window_controls_position()`
  (reads `CosmicTk.window_controls_position`), mirroring how `density`
  falls back to `header_size()`.
- New `CosmicTk.window_controls_position` field with default `End` for
  backwards compatibility; serde-friendly enum so existing configs keep
  working via `#[serde(default)]` semantics.

Tested with cosmic-yoterm, cosmic-settings, cosmic-edit, cosmic-files
rebuilt against this libcosmic via a local `[patch]` override. Config
changes picked up live through the existing cosmic-config subscription.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-07-02 18:28:43 +02:00
..
app fix: live settings override auto blur 2026-07-01 15:10:28 -04:00
applet refactor: remove extra opacity where it was added 2026-07-01 15:10:28 -04:00
config header_bar: add WindowControlsPosition (macOS-style left controls) 2026-07-02 18:28:43 +02:00
dialog chore: apply clippy suggestions 2025-10-05 04:40:51 +02:00
executor wip rebase updates 2026-03-04 12:04:32 -05:00
surface chore: add the rounded rectangle strip helper 2026-07-01 15:10:28 -04:00
theme chore: dialog default to overlay 2026-07-01 15:10:28 -04:00
widget header_bar: add WindowControlsPosition (macOS-style left controls) 2026-07-02 18:28:43 +02:00
action.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
anim.rs chore: various fixes and some cleanup 2026-03-04 12:04:32 -05:00
command.rs feat: hex_color serialization for the theme 2026-07-01 15:10:28 -04:00
core.rs refactor: allow for transparent header 2026-07-01 15:10:28 -04:00
dbus_activation.rs chore: add rustfmt config 2026-05-04 11:55:17 -04:00
desktop.rs chore: add rustfmt config 2026-05-04 11:55:17 -04:00
ext.rs chore: re-export iced row and column 2026-04-03 20:39:31 +02:00
font.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
icon_theme.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
keyboard_nav.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
lib.rs doc: add crate level documentation 2026-05-30 19:01:01 +02:00
localize.rs chore: add rustfmt config 2026-05-04 11:55:17 -04:00
malloc.rs perf: throttle malloc_trim + avoid VecDeque clones (squashed) 2026-07-02 18:28:43 +02:00
process.rs fix(process): safely exit forked child after spawn 2026-05-18 09:25:23 -04:00
scroll.rs Add helper for accumulating scroll into discrete delta 2025-12-06 20:00:59 -08:00
task.rs chore(task): add none function 2025-04-22 14:37:58 +02:00