Commit graph

1847 commits

Author SHA1 Message Date
10422b8f4a 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-05-25 13:04:22 +02:00
87510782ae feat(segmented_button): on_double_click + internal tab reorder (squashed)
Squash of 2 yoda commits:
- 108441ef segmented_button: add on_double_click callback
- a322516f segmented_button: fix internal tab reorder end-to-end
2026-05-25 13:03:13 +02:00
ea17ada931 perf: throttle malloc_trim + avoid VecDeque clones (squashed)
Squash of 2 yoda commits:
- 77262dd0 perf(malloc): throttle malloc_trim to 1 Hz in hot paths
- 1d98eee6 perf(widget): avoid VecDeque clone in segmented_button/table Model::clear
2026-05-25 13:03:13 +02:00
Hojjat
8fa6a01d04 feat: add ability to provide extra paths to search for icons 2026-05-22 01:26:34 +02:00
Michael Aaron Murphy
113e0ae1f9
chore(applet): gracefully exit with log when panel exits
This was causing confusion for users that thought this symptom may be the cause of a problem.
2026-05-22 01:21:03 +02:00
Michael Aaron Murphy
2f022280f2
docs: fix cargo doc generation 2026-05-20 17:04:07 +02:00
Michael Aaron Murphy
e2b172e0bc
feat(iced): X11 resize fix, f16 shader compat, & selectable text feature 2026-05-20 16:06:07 +02:00
Hojjat
b279d82240 fix: circular progressbar crashes on very small windows 2026-05-20 07:25:00 -04:00
Hojjat
147306d581 chore: update iced 2026-05-20 07:25:00 -04:00
Vukašin Vojinović
466e25d9f8 feat(progress_bar): linear progress markers 2026-05-19 20:00:14 +02:00
Michael Aaron Murphy
6f863f1905 chore: cargo +nightly fmt 2026-05-18 09:25:23 -04:00
Andrei Ivanou
5782cb927e fix(process): safely exit forked child after spawn
Co-Authored-By: Michael Murphy <michael@mmurphy.dev>
2026-05-18 09:25:23 -04:00
DanielKaleby
631c81b170
feat(cosmic-config): add new_data method. 2026-05-14 16:19:43 +02:00
Ilia Malanin
cab9d5aff2
feat!(menu): support physical key matches for non-Latin keyboard layouts 2026-05-14 16:10:59 +02:00
Michael Aaron Murphy
2aa9133f9d
docs(readme): add Made for COSMIC Flatpak section 2026-05-13 16:14:34 +02:00
Michael Murphy
4fab6c777d
i18n: translation update from Hosted Weblate (#1269)
Translations update from [Hosted Weblate](https://hosted.weblate.org)
for [Pop
OS/libcosmic](https://hosted.weblate.org/projects/pop-os/libcosmic/).



Current translation status:

![Weblate translation
status](https://hosted.weblate.org/widget/pop-os/libcosmic/horizontal-auto.svg)
2026-05-12 17:12:40 +02:00
KENZ
b105e9a108
feat(iced): IME support improvements 2026-05-08 17:25:49 +02:00
Ashley Wulber
528513725d chore: update iced 2026-05-07 18:46:53 +02:00
Hojjat
0e0960f3c7 feat: reorderable flex row 2026-05-04 21:26:58 +02:00
Vukašin Vojinović
9c2a86a8f4 chore: add rustfmt config 2026-05-04 11:55:17 -04:00
Vukašin Vojinović
9abc4d483b chore: update dependencies 2026-05-04 11:55:17 -04:00
Vukašin Vojinović
34326b3925 chore(cosmic-theme): move Roundness to libcosmic 2026-05-04 11:55:17 -04:00
Hosted Weblate
15a8a535dd
i18n: translation updates from weblate
Co-authored-by: BoneNI <bounkirdni@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Марко М. Костић <marko.m.kostic@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/libcosmic/sr/
Translation: Pop OS/libcosmic
2026-05-03 01:52:48 +02:00
Vukašin Vojinović
564ef834ce improv(theme): list_button style
This adds a new `list_button` field to theme, which makes ListItem buttons stay transparent when pressed. It's essentially a mix of `text_button` and `background.component`, without hover highlights (as per designs).
2026-04-28 13:59:25 +02:00
Michael Murphy
99c038a66a
i18n: translation update from Hosted Weblate (#1263)
Translations update from [Hosted Weblate](https://hosted.weblate.org)
for [Pop
OS/libcosmic](https://hosted.weblate.org/projects/pop-os/libcosmic/).



Current translation status:

![Weblate translation
status](https://hosted.weblate.org/widget/pop-os/libcosmic/horizontal-auto.svg)
2026-04-27 16:24:57 +02:00
Hosted Weblate
cae05f3ffb
i18n: translation updates from weblate
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/libcosmic/el/
Translation: Pop OS/libcosmic
2026-04-27 16:10:11 +02:00
Vukašin Vojinović
8768bce2e2 fix(menu_bar): menu border radius 2026-04-27 15:28:03 +02:00
Michael Aaron Murphy
49846d9f28
fix: wgpu validation error on float16 shader with older GPUs 2026-04-27 15:05:05 +02:00
Rakshat
51be7dc42d
fix(menu_bar): use corner radius from theme for menu border 2026-04-27 15:00:52 +02:00
Will Sheehan
5825afb0da fix(segmented_button): reset menu state when reopening context menu
When a context menu is open and the user right-clicks a different item,
the overlay's close handler resets the menu state but no longer captures
the event (since e10459f). The right-click propagates to the widget,
which reopens the menu with stale `MenuBounds` from the previous context
menu. If the new menu has a different number of items, this causes an
assertion failure in `MenuState::layout`.

Call `data.reset()` before setting `data.open = true` in the right-click
handler to ensure stale `MenuBounds` are cleared before the next layout
pass rebuilds them.
2026-04-27 14:58:46 +02:00
Michael Aaron Murphy
f3fc763b5f
ci(pages): update Rust toolchain to latest nightly 2026-04-27 14:43:39 +02:00
Michael Aaron Murphy
21977ef617
feat(iced): update to wgpu 28 & cosmic-text 0.19 2026-04-27 14:39:52 +02:00
Michael Aaron Murphy
58b7532849
chore: update MSRV to Rust 1.93 2026-04-27 14:37:22 +02:00
Vukašin Vojinović
17291536a1 fix(header_bar): prevent double coloring 2026-04-23 11:15:32 -04:00
Vukašin Vojinović
dad5f1e273 fix(progress_bar): sync determinate animation clock on target change
This prevents the time delta from becoming very large when the widget hasn't animated for a bit, leading to snapping instead of a smooth animation.
Also prevents animating on widget creation, since it doesn't feel good in `cosmic-osd`.
2026-04-22 15:03:14 +02:00
Vukašin Vojinović
8b4c8adec8 feat(progress_bar): animate determinate progress 2026-04-21 13:39:43 -04:00
Vukašin Vojinović
4d39cf3d7b improv(progress_bar): unify indeterminate animations 2026-04-21 13:39:43 -04:00
KENZ
dc84488cd8
fix(iced): double IME commit on GNOME desktop 2026-04-19 17:03:20 +02:00
KENZ
6dba6a2561
fix(iced): make IME event forwarding to sctk optional
pulls in the change to make IME events forwarding to sctk optionally
2026-04-19 17:02:26 +02:00
Vukašin Vojinović
95756b1a57 improv(circular): prevent caps from touching
Some checks failed
Continuous Integration / format (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "") (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "applet") (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "desktop,smol") (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "desktop,tokio") (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "wayland") (push) Has been cancelled
Pages / pages (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "winit") (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "winit_debug") (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "winit_tokio") (push) Has been cancelled
Continuous Integration / tests (--no-default-features --features "winit_wgpu") (push) Has been cancelled
Continuous Integration / tests (-p cosmic-theme) (push) Has been cancelled
Continuous Integration / examples (application) (push) Has been cancelled
Continuous Integration / examples (context-menu) (push) Has been cancelled
Continuous Integration / examples (nav-context) (push) Has been cancelled
Continuous Integration / examples (open-dialog) (push) Has been cancelled
2026-04-18 16:08:34 -04:00
Vukašin Vojinović
c423ad1bfc improv(about): use ListButton 2026-04-17 13:52:08 +02:00
Vukašin Vojinović
8d7bcab258 fix(list_column): add back divider_padding
Also matches previous behavior of both paddings being applied to subsequent items, rather than globally.
2026-04-17 13:17:23 +02:00
Hojjat
c162a1f24a fix(animated-image): update frames and fix compilation errors 2026-04-16 19:58:39 +02:00
Vukašin Vojinović
3f9e93067b fix(item builder): remove unnecessary lifetime bound for radio 2026-04-16 18:26:17 +02:00
Vukašin Vojinović
917af9fda2 feat(radio): internal method for radio without label
Also adds the related settings item builder.
2026-04-16 17:19:36 +02:00
Vukašin Vojinović
9b465a8b5c feat(list_column): button list items 2026-04-16 17:19:36 +02:00
Vukašin Vojinović
9cac422c24 fix(toggler): animate external changes 2026-04-16 17:19:36 +02:00
Hojjat
0fc4638af3 fix: register image_extras in run_single_instance too 2026-04-15 23:59:57 +02:00
Hojjat
3d8d8915be chore: enable ico and xpm image support for desktop feature 2026-04-15 13:10:25 +02:00
Ian Douglas Scott
46d9f0c344 widget/icon: Bundle icons on macOS, not just Windows 2026-04-14 21:46:05 +02:00