Commit graph

842 commits

Author SHA1 Message Date
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
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