Commit graph

1153 commits

Author SHA1 Message Date
04848eacce merge: upstream/libcosmic a l'etat pinne par epoch-1.8.0 (d4d71fd53)
# Conflicts:
#	iced
#	src/widget/toaster/widget.rs
2026-09-10 18:09:10 +02:00
Hojjat
6347ba2390 fix: keep content's overlays visible while showing toaster 2026-09-03 00:27:13 +02:00
Hojjat
9cc82abd9c fix: don't pass keyboard events to content if popover modal is open 2026-09-02 13:04:46 +02:00
173d6ebd32 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	iced
2026-08-27 07:49:01 +02:00
Eric Le Bihan
3b62210d27 fix(menu): request redraw when menu bar opens
When using a menu bar without Wayland popup support, the menu items are
unclickable, as redrawing is never requested.

So, request a redraw after opening so the overlay menu is created and
drawn immediately.
2026-08-25 21:17:21 +02:00
Michael Aaron Murphy
2a73fbc0ed fix(segmented_button): request redraw on tab focus shift 2026-08-25 16:46:23 +02:00
Ashley Wulber
f8f5c7b5a6
feat: popover top position (#1403) 2026-08-25 02:28:46 +02:00
Alex Klepov
3a8ebf9197
fix(menu): panic when right-clicking a submenu 2026-08-20 00:18:04 +02:00
9535ada4d0 Merge upstream/master (COSMIC 1.6) into main
Aligne le fork sur epoch-1.6.0 (63 commits amont) en preservant les 19
commits yoda.

Resolutions notables :
- les cfg `all(feature = "wayland", target_os = "linux")` deviennent
  l alias `wayland_platform` introduit en amont ; il exclut winit comme
  le faisait le patch yoda 45eaaf16, l intention est donc preservee ;
- les features iced `cctk` ont ete renommees `wayland` en amont, la
  feature `wayland` locale est adaptee ; `winit` reste un marqueur vide
  et `iced/winit` est liste explicitement ;
- cctk/ashpd gardent leurs chemins locaux dans la section conditionnelle
  unix introduite en amont ;
- la garde anti-crash c0b653f5 (context_menu non assigne) est conservee
  par-dessus la nouvelle structure amont ;
- traductions ca/oc restaurees depuis amont.

Le submodule iced suit (merge + correctif du cfg cctk residuel).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 21:55:00 +02:00
5392d9d5ae segmented_button: honour WindowControlsPosition for the tab close button
The close button of closable tabs was pinned to the trailing edge, so
enabling macOS-style window controls left the window buttons on the
left and the tab crosses on the right.

Read crate::config::window_controls_position() and, when Start, place
the close button before the tab contents and shift them accordingly.
The hit-test, the text width and the drawn icon all derive from the
same position so they stay in sync.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 21:18:31 +02:00
Hojjat
a5267e623f fix: request redraw on hover state change in dropdown widget
This also add a missing request when dropdown opens
2026-08-19 14:31:31 +02:00
Paul
75e9ee7e65 fix: request redraw on dropdown open/close in the in-window overlay path
`Dropdown::new` (the plain constructor used by any non-applet consumer) leaves `window_id`/`on_surface_action` unset, which routes the widget's `overlay()` impl to the in-window overlay path rather than the surface-action-based popup path. On that path, `update()`'s `open` closure and its close counterparts only ever requested a redraw inside the `#[cfg(wayland_platform)] if let Some(...)` block gated on those fields being set — so for the common case, opening or closing a dropdown flipped `is_open` with no redraw requested at all. The stale frame stuck around until some unrelated later event (e.g. cursor motion landing on the now-open/closed menu's bounds) forced a repaint,
making the menu appear to not open until the mouse moved, and not close until the same thing happened again on the way out.

Add an unconditional `shell.request_redraw()` at each of the three `is_open` transitions that don't already publish a Message of their own (an actual option selection already triggers a normal Message-driven redraw through the app's own update cycle, so that path needed no change):

- `open`: right after `is_open` is set true, ahead of the wayland-only surface-action block.
- the `close_operation` branch of the open/close operation state machine (`Id`-based programmatic close).
- the click-outside-closes-it branch of the mouse/touch press handler.

Fixes #1395
2026-08-19 14:31:31 +02:00
Hojjat
1f8d878694 fix: request redraw when hover state changes in toggle widget 2026-08-10 21:56:23 +02:00
Hojjat
0633751633 fix: request redraw if pressed state changes in button widget 2026-08-10 21:56:23 +02:00
Hojjat
5da2e94337 fix: request redraw when menu item hover state changes 2026-08-10 21:56:23 +02:00
Hojjat
633e6ab83f fix: request redraw if hovered state changes in segmented_button 2026-08-10 18:22:08 +02:00
Hojjat
030a7dbe02 fix: request redraw in selectable text and context menu 2026-08-09 06:09:28 +02:00
Ashley Wulber
8a017a15ee fix: window id handling for multi-window 2026-08-07 20:20:54 +02:00
Ashley Wulber
324ef6e905 chore: update selectable text menu corner radius 2026-08-07 20:20:54 +02:00
Ashley Wulber
03a66751ea chore: feature gates 2026-08-07 20:20:54 +02:00
Hojjat
654ae0bf5d chore: add typography presets for selectable_text 2026-08-07 20:20:54 +02:00
Hojjat
8a03f063c0 refactor: rename to SelectableText instead of Text
This avoids API breakage
2026-08-07 20:20:54 +02:00
Hojjat
1de6ce9460 fix: dismiss the pop up on click outside or esc 2026-08-07 20:20:54 +02:00
Hojjat
8b31e83d58 fix(test): --features applet only
fix(test): `--feature wayland` only
2026-08-07 20:20:54 +02:00
Hojjat
a70feab2bf feat: integrate text context menu popups into Cosmic framework view system 2026-08-07 20:20:54 +02:00
Hojjat
d751855c74 feat: add Wayland popup context menu to TextInput 2026-08-07 20:20:54 +02:00
Hojjat
c6cf3db29d feat: add text context menu (overlay and wayland popup) 2026-08-07 20:20:54 +02:00
Hojjat
2cd43a8b89 feat: add context menu wrapper for TextEditor 2026-08-07 20:20:54 +02:00
Hojjat
834cd366ee feat: add context menu support to selectable Text widget 2026-08-07 20:20:54 +02:00
Hojjat
1421337831 fix: do not publish ResponsiveMenuBar messages in a loop 2026-08-05 16:02:04 -04:00
Hojjat
31ec448bf0 fix: request redraw in text input when needed 2026-08-05 16:02:04 -04:00
Hojjat
5fd1ca4220 fix: request redraw in menus 2026-08-05 16:02:04 -04:00
Hojjat
1ac21a9d99 fix: request redraw when hover state changes 2026-08-05 16:02:04 -04:00
Ashley Wulber
abaa06f10f fix(menu): path highlight corners flipped 2026-07-29 12:46:09 -04:00
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
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
Michael Aaron Murphy
ef162b8e16
feat(icon): add opacity method 2026-07-19 04:48:42 +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
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
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
Ashley Wulber
8cb10bf6e2 fix: config watcher hash & blur 2026-07-09 17:45:24 -04:00