Commit graph

852 commits

Author SHA1 Message Date
KENZ
1444d5c43e fix(ime): Don't panic if some IME sends DeleteSurrounding events 2026-05-08 00:23:00 +02:00
KENZ
f752bba18f Revert "Fix the candidate window position of fcitx5 which does't work well wi…"
This reverts commit a9bcb00529.
2026-05-08 00:22:22 +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
Ian Douglas Scott
8f10a3bd34 winit: Set WindowAttributesWayland without cctk feature
There doesn't seem to be any reason for this to require the `cctk`
feature?

Fixes the app ID, and therefore icon, for `cosmic-sync-gui`.
2026-04-16 12:59:35 -06: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
Hojjat
42e3afb568 fix: double negative causing windows to never become ready 2026-04-01 21:59:58 -04:00
KENZ
84f3210819 Use base colors iff program style's background color is not opaque for IME preedit 2026-04-01 17:19:38 -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
1fdd24ab99 fix: feature gates 2026-03-30 18:47:47 -04:00
Ashley Wulber
d4b0c0482b fix: ensure adapter is created before window is marked visible 2026-03-30 18:47:47 -04:00
Ashley Wulber
5fa8b72a21 fix: mark window ready after adapter created 2026-03-30 18:47:47 -04:00
Ashley Wulber
3b7f0bec0e chore: cleanup platform specific code 2026-03-30 18:47:47 -04:00
Ashley Wulber
f59d5354bf increment surface version after sync 2026-03-23 20:16:37 -04:00
Ashley Wulber
9b94ee3ec4 fix: scale 2026-03-23 19:12:21 -04:00
KENZ
a9bcb00529 Fix the candidate window position of fcitx5 which does't work well with winit's set_ime_cursor_area() 2026-03-23 10:35:45 -04:00
wiiznokes
2d41248288 fix windows build 2026-03-18 09:11:54 -04:00
Ashley Wulber
51b0411026 fix(viewport): must use logical size when scale changes 2026-03-17 20:49:44 -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
1e419b2bc6 fix: update cursor pos when pointer enters 2026-03-10 01:08:34 -04:00
Ian Douglas Scott
4fb3ba214b winit: Fix cursor_position for touch events
Some widgets check the cursor position when handling the touch down
event, so we need to make sure `cursor_position` is set then, and not
only when there is a touch move event. Simply always setting it for
`WindowEvent::PointerButton` (for touch or mouse input) seems
reasonable.

We also need to avoid clearing `cursor_position` for `PointerLeft`
with a touch device. Do that only for mouse input.

Ideally Iced would handle touch input without tying to
`cursor_position`, but this should match the behavior of upstream Iced.

This seems to fix regressions since the Iced rebase in the `tour`
example, and in `cosmic-files`. `cosmic-files` seems to have some
issue using the menus with a touch device, but that doesn't seem to be a
regression.
2026-03-09 21:29:00 -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
Ashley Wulber
b479f3e87f fix: is_subsurface gated by wayland feature 2026-03-02 10:55:39 -05:00
mariinkys
0df654c14a fix: keyboard events fire twice 2026-03-02 10:28:52 -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
59fbf68c54
fix: clean up dnd rectangles reference to window on close 2026-02-25 17:47:30 -05:00
Ashley Wulber
686c6afb8d
fix(sctk): popup initial configure ack handling 2026-02-20 18:15:28 -05:00
Eduardo Flores
8cfe449315 fix(macOS): change super_key to meta_key for 'q' press
The super key was deprecated in favor of the meta key, adding this change to reflect that.
2026-02-20 17:20:49 -05:00
Hojjat
cc670e1966
feat: add Ellipsize to widgets 2026-02-19 22:36:03 -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