e3dcdf1fce
yoda: fork pivot — Wayland-only + ungate winit + soft-fork libcosmic-yoda (squashed)
...
Squash of 7 yoda commits forming the fork pivot:
- 255cf7cc rename: libcosmic -> libcosmic-yoda (fork 0.1.0-yoda)
- 8701aa31 feat(yoda): Wayland-only cut — drop winit and x11 features
- 6736a596 yoda: soft-fork pivot — keep Cargo name 'libcosmic' for dep unification
- 3e23d087 yoda: re-apply hard rename — libcosmic -> libcosmic-yoda (0.1.0-yoda)
- aec3eb61 yoda: ungate remaining winit+wayland combined cfgs
- 8ab7b158 yoda-v2: color_picker Theme ref + context_menu/menu ungate winit
- 8d1d8739 yoda: drop x11 defaults on iced_winit + iced_tiny_skia
2026-05-25 13:05:05 +02:00
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
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
Ilia Malanin
cab9d5aff2
feat!(menu): support physical key matches for non-Latin keyboard layouts
2026-05-14 16:10:59 +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
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
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
Vukašin Vojinović
95756b1a57
improv(circular): prevent caps from touching
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
Ian Douglas Scott
46d9f0c344
widget/icon: Bundle icons on macOS, not just Windows
2026-04-14 21:46:05 +02:00
Ashley Wulber
a44cff8011
fix(text_input): always clip input text with the text bounds
...
this issue seems unique to tiny-skia
2026-04-08 17:05:40 +02:00
Ashley Wulber
47ab72be50
fix!(progress_bar): remove unused generic Message type
2026-04-08 07:38:18 +02:00
Adam Cosner
5d1dfc4c54
refactor!: remove cosmic::iced_* re-exports
2026-04-08 03:12:10 +02:00
Ashley Wulber
d9121d6f0d
refactor: better helpers for the progress_bar
2026-04-07 21:47:46 +02:00
Ashley Wulber
b963fbfea9
feat(widget): progress bars
2026-04-07 17:02:58 +02:00
Hojjat
724351727a
feat: select until char and double click select delimiter
...
adds a feature to select from the start of the sentence until the last
occurrence of a character. This can be used to select until the
extension in cosmic-files save dialog or rename pop up.
Also, it adds a feature to select until the last occurrence of a
character on double-click.
2026-04-07 13:35:26 +02:00
Hojjat
1f87cbc883
fix: do not allow cursor or keyboard activity when popup is open
...
traps Tab from escaping, and won't allow elements in the background to
react to hover
2026-04-07 13:32:21 +02:00
Ashley Wulber
9aa87cd66b
fix(segmented_button): active font for context menu & prioritize active font over hover
2026-04-06 18:57:27 -04:00
KENZ
8e3672a7dd
fix: focus detecting in IME logic
2026-04-06 15:59:18 +02:00
Vukašin Vojinović
fdf3369cea
chore: re-export iced row and column
...
This removes the custom row and column implementations and uses the iced ones directly.
2026-04-03 20:39:31 +02:00
Vukašin Vojinović
a9e0671075
fix(segmented_button): hover text style
2026-04-03 20:36:23 +02:00
Hojjat
24464908f6
fix: buttons are focusable again
2026-04-03 02:28:00 +02:00
GroobleDierne
7a02c9a296
fix(color palette): avoid duplicates
2026-04-02 16:21:50 -04:00
KENZ
f6eb314606
feat(text_input): minimal IME support for COSMIC specific text widgets
2026-04-02 00:35:57 +02:00
Hojjat
aef328238f
fix(editable): the UX is closer to design now
...
This fixes the unresponsive trailing icon and changes the behavior to be
closer to the UI/UX design.
2026-04-01 23:29:26 +02:00
Hojjat
e1738d2ea7
fix(text_input): keyboard shortcuts when keyboard is a different language
...
Matches what Iced does
2026-04-01 23:26:42 +02:00
Hojjat
2299fba69b
fix(text_input): RTL text cursor and highlight fixes
2026-04-01 23:26:42 +02:00
Ashley Wulber
413e63f62a
chore: update features and feature gates
2026-03-30 22:25:27 -04:00
Ítalo Dell Areti
380b341bdc
feat(text_input): add select_range method and Task function
2026-03-28 00:09:34 -04:00
Ashley Wulber
254c13cfc4
fix: ellipsize text in menu items
2026-03-27 21:22:54 +01:00
Ashley Wulber
e63f3196e2
fix: MenuActive path highlight
2026-03-27 21:21:59 +01:00
Frederic Laing
d7fd880ac6
fix(toggler): add touch input support
2026-03-23 10:22:04 -04:00
Hojjat
c804d3851d
fix: don't ever draw glyphs outside of the bounds
2026-03-23 10:21:15 -04:00
Hojjat
dc3ebaa38e
feat(segmented_button): add ellipsize support
2026-03-23 10:21:15 -04:00