Commit graph

2030 commits

Author SHA1 Message Date
vacenty
0ca1b784c9 feat: Add option for frozen glass in maximized windows 2026-07-28 11:02:31 -04:00
Aadil
1f6dc991ea
fix(slider): adjust handle bounds and size for iced widget slider update 2026-07-27 14:16:25 +02:00
Michael Aaron Murphy
bdb273389d
chore: update iced with slider handle improvements 2026-07-27 14:11:20 +02:00
28f7ab4651 fix(segmented_button): crash when enumerating context menu buttons
Cherry-pick of upstream fix (pop-os/libcosmic#1354).

The .enumerate().find_map() pattern counted ALL items (buttons +
dividers) but the resulting index was used to access a children
array containing only button entries. When a divider preceded the
target button (e.g. trash in nav bar), the index was off-by-N,
causing an out-of-bounds panic and crashing cosmic-files.

Fix: filter_map first to keep only buttons, then enumerate.
2026-07-25 22:20:01 +02:00
Hojjat
7e777077b8 fix: gate frosted transparency on auto_blur 2026-07-24 11:52:07 +02:00
Hosted Weblate
c994f94ea9
i18n: translation updates from weblate
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Isaac Subirana <isaacsubiranac@gmail.com>
Co-authored-by: Nara Díaz Viñolas <nara.diaz.vinolas@gmail.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/libcosmic/ca/
Translation: Pop OS/libcosmic
2026-07-23 18:51:12 +02:00
Michael Aaron Murphy
ef162b8e16
feat(icon): add opacity method 2026-07-19 04:48:42 +02:00
Adil Hanney
0eef591171
fix(cosmic-theme): remove kdeglobals theme generation support 2026-07-17 16:58:48 +02:00
Vukašin Vojinović
66263a76d3 fix(toggler): toggle on release 2026-07-16 19:25:42 +02:00
Vukašin Vojinović
ac74ed51d9
fix(circular): calculate bar height based on the size of the circular
This calculates the `bar_height` based on the size of the Circular by default, so that ones with a small size don't have visual issues caused by a fixed height.

Also fixes the `track_radius` calculation, which caused the widget to appear smaller than it should be.
2026-07-16 19:25:08 +02:00
Hojjat
16d148807c fix: clear paste cache after shift+insert 2026-07-16 19:23:41 +02:00
Ashley Wulber
6359a9465b chore: update iced 2026-07-15 16:54:18 -04:00
Ashley Wulber
63568a8d9c improv: feature gate for xdg_portal 2026-07-15 16:54:18 -04:00
Ashley Wulber
8e6aea650a fix: feature gates 2026-07-15 16:54:18 -04:00
Hojjat
511384f620 chore: update iced to pull in fixes for curved corners 2026-07-14 00:31:00 +02:00
Michael Aaron Murphy
96a82045d7 fix(segmented_button): crash when enumerating context menu buttons 2026-07-13 14:38:38 -04:00
Aadil
c53b43d41b
feat(color_picker): add mouse_interaction function (#1326) 2026-07-13 20:15:46 +02:00
Michael Aaron Murphy
fc5debccef fix: matching desktop entries by CRX ID
The existing test for this was broken, and the desktop entry
cache was being refreshed before a match is fully checked.
2026-07-13 17:04:17 +02:00
name-is-hai
18731e8392 fix(desktop): XDG desktop entry precedence
Resolve duplicate desktop IDs before applying desktop entry visibility rules

This allows user desktop entries to override matching system entries and ensures Hidden, NoDisplay, and NotShowIn overrides do not reveal lower-priority entries

Signed-off-by: name-is-hai <90458368+name-is-hai@users.noreply.github.com>
2026-07-13 16:49:31 +02:00
Eduardo Flores
5187dd6d1d fix(segmented_button): remove feature gate 2026-07-12 20:34:27 +02:00
Jeremy Soller
c44dbe793b
Update iced (#1341)
- [x] Depends on https://github.com/pop-os/iced/pull/365
___
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-07-09 18:32:59 -06:00
Hojjat
a1003f24ec chore: update iced to fix corner radius 2026-07-09 18:24:36 -06:00
Ashley Wulber
8cb10bf6e2 fix: config watcher hash & blur 2026-07-09 17:45:24 -04:00
Ashley Wulber
dc11d6a11f fix: no text should use the steps array for transparent color 2026-07-09 11:04:46 -04:00
Ashley Wulber
74b2407342 fix: avoid blurring subsurfaces on creation 2026-07-08 21:21:33 +02:00
Ashley Wulber
5056fc6f9b improv: overlap corner radius strip regions
fixes handling of unfortunate scale values
2026-07-08 12:08:23 -04:00
Jeremy Soller
be41927859
refactor(rectange tracker): relax Copy to Clone (#1331)
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-07-07 06:26:01 -06:00
Jeremy Soller
3b85b6e835
fix: update iced (#1335)
popup blur & corner cleanup

- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-07-06 16:56:50 -06:00
Ashley Wulber
d9b2b38bf4 fix: update iced
popup blur & corner cleanup
2026-07-06 18:49:36 -04:00
Ashley Wulber
2a325fa69a fix: update blur status after theme change 2026-07-06 14:54:58 -04:00
Ashley Wulber
9691870f72 refactor: option for customizing the border padding, instead of disabling the content container 2026-07-06 14:54:58 -04:00
3e4ab4576d fix(segmented_button): publish on_context without widget context_menu
Upstream's popup refactor gated the on_context callback behind
context_menu.is_some(), silencing consumers that provide their own
dialog (cosmic-term tab rename). Publish the message unconditionally;
keep menu state + popup creation gated on an actual context_menu.

Leyoda 2026 – GPLv3
2026-07-04 19:41:28 +02:00
Ashley Wulber
ee5d965983 fix: disabled menu buttons don't need to be transparent 2026-07-02 20:21:17 +02:00
Ashley Wulber
9d01c86f25 refactor(rectange tracker): relax Copy to Clone 2026-07-02 13:25:37 -04:00
2fe2d35286 yoda: cargo fix sweep post-rebase + iced submodule sweep bump
Leyoda 2026 – GPLv3
2026-07-02 19:11:38 +02:00
9e9ae942c4 yoda: absorb upstream theme-v2 integration debt post-rebase
- degate 'feature = "winit"' cfgs added by upstream (fork policy:
  winit toujours actif, le stub Cargo reste vide)
- cards.rs: restore 'id' param consumed by upstream's new struct init
- iced submodule rebased onto upstream c781ff61 (wgpu 28, cryoglyph)
- Cargo.lock regenerated against local path deps

Leyoda 2026 – GPLv3
2026-07-02 19:00:00 +02:00
Ashley Wulber
6cdb4c62ce refactor(rectange tracker): relax Copy to Clone 2026-07-02 12:50:27 -04:00
18c2326f34 yoda: rebase iced fork onto upstream c781ff61 (iced 0.14 bump)
Leyoda 2026 – GPLv3
2026-07-02 18:46:55 +02:00
37829fd899 chore: use local graphics dependencies 2026-07-02 18:36:28 +02:00
ca66c7c1b0 chore: use local COSMIC support crates 2026-07-02 18:36:28 +02:00
ce5e3b6eca fix: drop iced_winit/single-instance feature ref
Upstream dc84488c "fix(iced): double IME commit on GNOME desktop" wires
the libcosmic single-instance feature through iced_winit/single-instance,
but our pinned iced fork (yoda-wayland-only @ 81639935) does not carry
that feature yet. Drop the ref so libcosmic-yoda compiles after rebase;
the GNOME IME fix needs to be ported separately into the iced submodule
before this can be reinstated.

Leyoda 2026 – GPLv3
2026-07-02 18:35:50 +02:00
2c91d818c9 yoda: use local dbus settings bindings 2026-07-02 18:35:50 +02:00
9512f77a58 feat(flex_row): reorderable rows with shadow constant gated (squashed)
Squash of 2 yoda commits:
- 7dd0ee83 feat: reorderable flex row
- b1b8203a fix: gate reorderable flex row shadow constant
2026-07-02 18:35:50 +02:00
4e1080108c yoda: warning cleanup sweep (dead code + clippy --fix) (squashed)
Squash of 4 yoda commits:
- 84437e21 yoda: libcosmic-yoda dead-code purge (14->0 warnings)
- 999db0a4 yoda: cosmic-theme cleanup (4->0 warnings) — workspace at 0 warnings total
- 4743bb8e yoda: cargo clippy --fix on libcosmic-yoda (115->33 warnings)
- 675f3b59 chore: reduce local stack warnings
2026-07-02 18:35:50 +02:00
c85efc6180 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-07-02 18:35:21 +02:00
7c0b3ff1b7 feat(cosmic-theme): add apply_gtk_decoration_layout helper
Writes the gtk-decoration-layout key to ~/.config/gtk-{3,4}.0/settings.ini
and best-effort updates GNOME's button-layout GSettings key for apps that
still consult it. Factors out write_gtk_settings_key for reuse.

Leyoda 2026 – GPLv3
2026-07-02 18:35:00 +02:00
695c602ba1 yoda: bump iced submodule (Wayland-only + softbuffer cuts) (squashed)
Squash of 3 yoda commits:
- c118f5a2 yoda: bump iced submodule ref -> yoda-wayland-only HEAD 8f6be798
- 388e0655 yoda: bump iced submodule -> softbuffer + window_clipboard cuts
- 9b2a3643 Update iced warning fixes
2026-07-02 18:35:00 +02:00
45eaaf1605 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-07-02 18:34:50 +02:00
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
b7c81907ba 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-07-02 18:28:43 +02:00