Commit graph

82 commits

Author SHA1 Message Date
Votre Nom
4eea46bdd9 Fix high-signal widget and Wayland warnings
Avoid recursive operation traversal, execute visible list updates instead of leaving a lazy iterator unused, remove unreachable cfg-gated surface creation code, and handle subsurface buffer attachment failures.
2026-05-27 07:20:10 +02:00
KENZ
aa2a870c35 fix: Forward wayland IME events in SCTK only when single-instance
Some checks failed
Audit / vulnerabilities (push) Has been cancelled
Test / all (ubuntu-latest, 1.88) (push) Has been cancelled
Build / todos_linux (push) Has been cancelled
Build / todos_windows (push) Has been cancelled
Build / todos_macos (push) Has been cancelled
Build / todos_raspberry (push) Has been cancelled
Check / wasm (push) Has been cancelled
Check / widget (push) Has been cancelled
Test / all (ubuntu-latest, beta) (push) Has been cancelled
Document / all (push) Has been cancelled
Format / all (push) Has been cancelled
Lint / all (push) Has been cancelled
Test / all (macOS-latest, 1.88) (push) Has been cancelled
Test / all (macOS-latest, beta) (push) Has been cancelled
Test / all (macOS-latest, stable) (push) Has been cancelled
Test / all (ubuntu-latest, stable) (push) Has been cancelled
Test / all (windows-latest, 1.88) (push) Has been cancelled
Test / all (windows-latest, beta) (push) Has been cancelled
Test / all (windows-latest, stable) (push) Has been cancelled
feature enabled
2026-04-18 16:12:59 -04:00
boloto1979
64b97077b7 fix(wayland): add mouse cursor entered event to SctkEvent 2026-04-16 12:27:46 -04:00
Ashley Wulber
13b8d3eab6 fix: just use 0 for position of blur rectangle 2026-04-14 23:21:27 -04:00
Ashley Wulber
1bf1e33317 improv(wayland): handle capabilities for ext_background_effect 2026-04-14 18:21:36 -04:00
Ashley Wulber
d2b2715835 feat: ext-background-effect blur 2026-04-14 18:21:36 -04:00
KENZ
594ed5cfbe fix: Forward DeleteSurroundingText event in wayland backend 2026-04-01 17:18:08 -04:00
KENZ
d0ef1f9e85 Implement IME-related methods of SctkWinitWindow for apps using single-instance feature
- At least, following apps are using `single-instance` feature:
  - cosmic-launcher
  - cosmic-app-library
- Once libcosmic text widgets supported the IME, these apps start hitting following methods of SctkWinitWindow which is `todo!()` and will crash at startup:
  - `set_ime_cursor_area()`
  - `set_ime_allowed()`
  - `set_ime_purpose()`
- So, this PR implements these method utilizing following wayland protocols.
  - zwp_text_input_v3
  - zwp_text_input_manager_v3
2026-04-01 17:18:08 -04:00
Ashley Wulber
e4da5002ae fix: a11y_ready state for sctk surfaces 2026-04-01 17:12:17 -04:00
Ashley Wulber
3b7f0bec0e chore: cleanup platform specific code 2026-03-30 18:47:47 -04:00
Hojjat
7491547d70 fix(iced): handle scroll events 2026-03-16 15:57:15 -04:00
Hojjat
9b0ebf30bb fix(iced): route all pointer events through SctkEvent::PointerEvent 2026-03-16 15:57:15 -04:00
Ashley Wulber
ac24bbe80d fix: remove named space 2026-03-06 13:52:12 -05:00
Ashley Wulber
02149769ec fix: winit does not consider space a named key anymore to comply with spec 2026-03-06 13:09:41 -05:00
Ashley Wulber
b22d363f2c fix: popup creation handling of existing popups 2026-03-06 10:32:42 -05:00
Ashley Wulber
a839760e2a fix: resize border 2026-03-04 13:12:00 -05:00
Hojjat
0424b4ae42 fix: pop up size not configuring correctly 2026-03-02 09:47:45 -05:00
Ashley Wulber
f7dc180371
fix: subsurface improvements
this fixes a couple issues in the greeter
2026-02-27 17:23:10 -05:00
Ashley Wulber
686c6afb8d
fix(sctk): popup initial configure ack handling 2026-02-20 18:15:28 -05:00
Ashley Wulber
c1edb81084
fixes: various fixes and cleanup 2026-02-19 17:01:13 -05:00
Ashley Wulber
b4346ff3ca
a11y refactor 2026-02-04 15:38:07 -05:00
Ashley Wulber
e2918e0de9
wip 2026-02-03 16:45:44 -05:00
Stephan Buys
a489a6b790
iced: propagate pane drag destinations 2026-01-28 14:18:29 -05:00
Frederic Laing
1fb7e08f23
fix Wayland layer-shell protocol violation: "must ack the initial configure before attaching buffer" 2026-01-28 14:10:58 -05:00
Ashley Wulber
484aa0a532
fix: layer shell surface resize typo 2026-01-28 12:01:02 -05:00
Ashley Wulber
fd2220775b
fix: skip resize if size is unchanged 2026-01-28 12:01:02 -05:00
Ian Douglas Scott
70b9736dc7
iced/winit: Add surface id to OverlapNotify events 2026-01-28 12:01:02 -05:00
Ian Douglas Scott
49f1c2250b
winit/wayland: Add action to update layer shell input zone 2026-01-28 12:01:01 -05:00
Ian Douglas Scott
ea4f704f0f
winit/wayland: input_zone for layer, instead of pointer_interactivity
This is a more general version of the same thing, at matches what is
used for popups and subsurfaces.
2026-01-28 12:01:01 -05:00
Ian Douglas Scott
20e60ffde6
winit/wayland: Allow Vec for input_zone 2026-01-28 12:01:00 -05:00
Ian Douglas Scott
621713fe15
wayland: Fix handling of discrete/value120 scroll events
- Should test `!= 0`, not `> 0`; can scroll in either direction
- Test both vertical and horizontal
- Use `value120` scroll if present (in which case, discrete is 0)

I guess events should really have both line and pixel scroll, since some
widgets want to use the pixel scroll values for input devices that have
both? But I guess winit and Iced both need to be changed for that...
2026-01-28 12:01:00 -05:00
Ashley Wulber
329c4c0a84
fix(sctk): set_reactive on positioner if version allows 2026-01-28 12:00:33 -05:00
Ashley Wulber
7993a572b0
fix(wayland): window resize forces corner radius update 2026-01-28 11:59:57 -05:00
Ashley Wulber
bc85d82426
chore(wayland): window state handling 2026-01-28 11:59:26 -05:00
Ashley Wulber
e73bbddbca
feat(wayland): corner-radius protocol support 2026-01-27 17:17:08 -05:00
Ashley Wulber
54a69a0523
feat(wayland): shortcut inhibit 2026-01-27 17:00:24 -05:00
Ashley Wulber
8e7b7e586f
feat: subsurface reposition 2026-01-27 16:26:11 -05:00
Ashley Wulber
4eb7f9b2fe
fix(wayland popup): apply input region 2026-01-27 16:26:11 -05:00
Ian Douglas Scott
9e45bd2378
winit/sctk: Update cursor position on touch event
Ideally pointer should be seperate from touch, but this should match how
Iced handles input in normal winit windows.

d475ae5b45/winit/src/window/state.rs (L165-L170)

With this, touch input for applets seems to work as expected in general.
2026-01-27 16:26:10 -05:00
Ian Douglas Scott
5924fea0b1
Revert "subsurface_widget: Handle viewport and set source rectangle"
This reverts commit 15547dec8f83af1ea6dbed1964302400fc17c257 from
https://github.com/pop-os/iced/pull/227.

This is causing issues in `cosmic-workspaces`. It seems I didn't test it
properly outside the examples here... and this misinterpreted exactly
what the (undocumented) `viewport` argument means (Iced's `image` widget also
needed a fix to handle viewports properly since our fork:
https://github.com/iced-rs/iced/pull/2752).

It should be possible to fix, but revert for now.
2026-01-27 16:26:10 -05:00
Ian Douglas Scott
58f6ea3f08
subsurface_widget: Handle viewport and set source rectangle
This is needed to crop subsurface when needed, instead of rendering
overlapping other things. And to offset while scrolling.
2026-01-27 16:26:09 -05:00
Ashley Wulber
29b41e9776
chore(sctk): reduce severity of log messages 2026-01-27 16:20:42 -05:00
Ashley Wulber
e4f8120eed
improv(sctk): setup error handling 2026-01-27 16:20:36 -05:00
Ashley Wulber
9668aeba1f
fix: nested popup destruction 2026-01-27 16:08:23 -05:00
Ian Douglas Scott
78153e6240
fix(winit): Cleanup surface_subsurfaces on parent window removal 2026-01-27 16:08:16 -05:00
Jeremy Soller
3553fa2c01
Format 2026-01-26 13:11:55 -05:00
Jeremy Soller
6de3237687
support CapsLock modifiers on wayland 2026-01-26 13:11:28 -05:00
Ashley Wulber
6829724ac0
fix: send pointer motion event for pointer enter event 2026-01-26 12:51:02 -05:00
Ian Douglas Scott
53fed52405
wayland: Set cusor position on Enter events
Fixes https://github.com/pop-os/cosmic-workspaces-epoch/issues/143.

The way some events are converted to `WindowEvent`s in `pointer_frame`
but motion is handled in `SctkEvent::process` seems a little cluttered
at the moment, I guess from how this code was ported to be part of
iced-winit instead of separate. But as I understand, the code handling
`PointerEventKind::Enter` in `SctkEvent::enter` wasn't being called, so
that can be replaced with the new code here that sets the logical cursor
position.
2026-01-26 12:13:32 -05:00
Ian Douglas Scott
f04e237946
subsurface_widget: Use neagtive z to place below parent surface
Now uses `i32` for `z`.
2026-01-26 11:56:40 -05:00