Commit graph

87 commits

Author SHA1 Message Date
Ashley Wulber
9c748f1656 Revert "fix: avoid deadlock in context menu rendering"
This reverts commit 0094b347d4.
2026-05-27 17:25:49 -04:00
Hojjat
0094b347d4 fix: avoid deadlock in context menu rendering 2026-05-27 17:22:00 -04:00
Ashley Wulber
a7d71d9ace chore: modifiers event on keyboard enter and leave 2026-05-27 20:01:47 +02:00
Hojjat
b007caba44 feat: add direct SCTK action sender for wayland popups 2026-05-20 16:04:35 +02:00
Lcstyle
d7595fab95 fix: bootstrap FrameStatus on session lock surface configure
The session lock configure handler was missing receive_frame() and
request_redraw() calls that the layer surface configure handler has.
Without these, after S3 resume or DPMS wake, the FrameStatus entry
for lock surfaces could be missing, causing the rendering gate to
never reach Ready state — resulting in permanently grey lock screens.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 12:40:09 -04:00
Ashley Wulber
e000c71ff2 fix: send redraw request after events
creation events must be handled before processing redraws
2026-05-07 17:39:02 +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