Commit graph

1032 commits

Author SHA1 Message Date
38acba82b4 yoda: bump iced submodule + cargo auto-fix sweeps (squashed)
Squash of 6 yoda commits:
- 282813c8 yoda: bump iced -> window_clipboard via public Forgejo fork
- cdf34938 yoda: cargo fix --lib (libcosmic-yoda) — drop 99 trivial warnings
- 38a988cb yoda: cargo fix on cosmic-config + bump iced auto-fix commit
- 301bbf6e yoda: bump iced submodule -> iced_winit warning cleanup (0 left)
- b94c03d9 yoda: bump iced submodule -> iced_widget cleanup (0 left)
- a9492d76 yoda: bump iced submodule -> all iced crates at 0 warnings
2026-05-25 13:07:13 +02:00
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
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
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
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
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
Vukašin Vojinović
8768bce2e2 fix(menu_bar): menu border radius 2026-04-27 15:28:03 +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
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
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
Hojjat
6caccaba33 fix: icon color when window is maximized 2026-04-09 12:54:32 -04: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
12d2233c6b fix(ci): Added an inline doc to cctk reexport 2026-04-08 07:04:54 +02:00
Adam Cosner
e5955b568d ci: Updated pages.yml workflow
Use nightly channel to enable docs generating feature badges, plus enabled more features in the docs build, and building the cctk docs also
2026-04-08 07:04:54 +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
Hendrik Hamerlinck
97a805e5a1 feat(applets): add destroy tooltip popup action
This commit adds a new surface action to explicitly destroy the tooltip
popup on `TOOLTIP_WINDOW_ID`, allowing proper cleanup when minimizing
applets.
2026-04-03 08:26:29 -04:00