1
0
Fork 0
forked from wry/wry
Commit graph

53 commits

Author SHA1 Message Date
Julian Orth
41d7531cd5 wayland: implement xdg-activation 2024-02-14 18:33:17 +01:00
Julian Orth
9812a02f87 io: use io_uring for all io
There should no longer be any

- read
- write
- connect
- sendmsg
- recvmsg
- accept

calls in the codebase. Previously we were using a mix of io_uring and
these calls which had some negative effects: Since we were using the old
system calls, we had to set the file descriptors to non-blocking. But
our io_uring code did not handle EAGAIN. This lead to programs sometimes
being killed when the wayland IO was actually blocking.

Now all file descriptors are set to blocking, but io_uring makes it
non-blocking from our perspective. The one exception are evdev files
because they are read via libinput and libinput uses the old system
calls.
2022-12-31 17:56:58 +01:00
Julian Orth
335677bbcd wayland: implement xwayland_shell_v1 2022-10-18 17:43:49 +02:00
Julian Orth
887fab0936 xwayland: don't send raw wl_surface's to xwm
This handles a race where the surface was already destroyed when the
message was handled.
2022-10-16 20:58:21 +02:00
Julian Orth
6193569596 xwayland: add x-surface indirection 2022-10-16 20:53:59 +02:00
Julian Orth
ae991b9038 all: address clippy lints 2022-08-13 17:46:23 +02:00
Julian Orth
feddb25ee4 xwayland: allocate sockets from id 500 2022-07-26 20:31:40 +02:00
Julian Orth
f7320d2332 xwayland: destroy map_link on window destroy 2022-06-06 17:16:11 +02:00
Julian Orth
a39d1868f7 xwayland: destroy stack_link on window destroy 2022-06-06 17:14:52 +02:00
Julian Orth
a474033bff xwayland: disallow focusing invisible windows 2022-06-04 14:07:34 +02:00
Julian Orth
e52a60b3b6 wayland: implement scaling
This involves many subsystems:

- config:
    - allow setting the connector scale
    - allow setting the cursor size
- cursors:
    - load server cursors for all requested sizes and scales
- wl_surface:
    - track the output the surface belongs to
    - send wl_surface.enter/leave
- wl_output:
    - implement wl_output.scale
- text:
    - pre-render texts for all used scales
- renderer:
    - properly align scale textures and rectangles
- wp_fractional_scale:
    - new interface for fractional scaling
2022-05-30 17:00:25 +02:00
Julian Orth
ad85d89641 io-uring: add timeout argument to write 2022-05-13 18:24:12 +02:00
Julian Orth
e4f97287bc io-uring: add sendmsg 2022-05-13 17:37:20 +02:00
Julian Orth
dcdd91c0b0 io-uring: add readable/writable 2022-05-12 20:33:58 +02:00
Julian Orth
3875c63172 async: rebase wheel on top of async engine 2022-05-12 17:23:17 +02:00
Julian Orth
285724b4f1 xwayland: use io_uring to prevent lockups
See https://gitlab.freedesktop.org/wayland/wayland/-/issues/296
2022-05-11 21:45:44 +02:00
Julian Orth
5573b2a1b7 xwayland: remove leftover logging 2022-05-10 17:18:57 +02:00
Julian Orth
d6fabcb2b5 xwayland: implement copy/paste 2022-05-10 01:47:36 +02:00
Julian Orth
d52dc5f6e9 xwayland: prevent activation loops 2022-05-08 23:28:14 +02:00
Julian Orth
3abd72b330 all: run rustfmt 2022-05-07 00:28:02 +02:00
Julian Orth
cc090b1d0f xwayland: fix mapping of windows whose size is already correct at map time
IntelliJ in particular opens new windows with the exact same size as the
existing window. In a mono layout, this is the resulting window size.
For some reason, IntelliJ will not draw itself properly if it doesn't
get resized after mapping. So send a dummy 1x1 configure at map time.
2022-05-07 00:26:18 +02:00
Julian Orth
8c3106f631 tree: ensure that node is marked active after un-fullscreening 2022-05-04 16:33:28 +02:00
Julian Orth
e3b3d848c3 autocommit 2022-04-23 00:55:20 CEST 2022-04-23 00:55:20 +02:00
Julian Orth
32fe8b64ca autocommit 2022-04-21 18:25:34 CEST 2022-04-21 18:25:34 +02:00
Julian Orth
dae9e52347 autocommit 2022-04-20 20:20:36 CEST 2022-04-20 20:20:36 +02:00
Julian Orth
34e665cd8b autocommit 2022-04-20 18:33:59 CEST 2022-04-20 18:33:59 +02:00
Julian Orth
085ca95835 autocommit 2022-04-18 13:38:52 CEST 2022-04-18 13:38:52 +02:00
Julian Orth
1eb0d3e173 autocommit 2022-04-17 17:59:45 CEST 2022-04-17 17:59:45 +02:00
Julian Orth
a30306e3d5 autocommit 2022-04-17 17:08:31 CEST 2022-04-17 17:08:31 +02:00
Julian Orth
50b792db78 autocommit 2022-04-16 13:42:13 CEST 2022-04-16 13:42:13 +02:00
Julian Orth
fdf0ab7388 autocommit 2022-04-15 20:23:03 CEST 2022-04-15 20:23:03 +02:00
Julian Orth
35ddfbcbe3 autocommit 2022-04-14 16:06:11 CEST 2022-04-14 16:06:11 +02:00
Julian Orth
8924936079 autocommit 2022-04-12 17:26:33 CEST 2022-04-12 17:26:33 +02:00
Julian Orth
86ca98c38a autocommit 2022-04-11 13:11:56 CEST 2022-04-11 13:11:56 +02:00
Julian Orth
befd5e99b2 autocommit 2022-04-10 01:35:15 CEST 2022-04-10 01:35:15 +02:00
Julian Orth
21e2216ce5 autocommit 2022-04-08 23:02:38 CEST 2022-04-08 23:02:38 +02:00
Julian Orth
0bd9a70e69 autocommit 2022-04-08 00:04:55 CEST 2022-04-08 00:04:55 +02:00
Julian Orth
26f8c1aeb6 autocommit 2022-04-07 23:21:31 CEST 2022-04-07 23:21:32 +02:00
Julian Orth
be32036824 autocommit 2022-04-07 17:31:31 CEST 2022-04-07 17:31:31 +02:00
Julian Orth
e897d271af autocommit 2022-04-04 14:29:04 CEST 2022-04-04 14:29:04 +02:00
Julian Orth
6de9fb8303 autocommit 2022-04-02 19:38:13 CEST 2022-04-02 19:38:13 +02:00
Julian Orth
9842264fad autocommit 2022-03-29 15:40:59 CEST 2022-03-29 15:40:59 +02:00
Julian Orth
6ebf731aea autocommit 2022-03-29 14:11:25 CEST 2022-03-29 14:11:25 +02:00
Julian Orth
9630354245 autocommit 2022-03-27 01:36:44 CET 2022-03-27 01:36:44 +01:00
Julian Orth
86eb70ac3c autocommit 2022-03-26 23:23:07 CET 2022-03-26 23:23:07 +01:00
Julian Orth
707ff6066c autocommit 2022-03-26 22:58:30 CET 2022-03-26 22:58:30 +01:00
Julian Orth
a9a4fc04b7 autocommit 2022-03-23 16:23:28 CET 2022-03-23 16:23:28 +01:00
Julian Orth
63be47a9fb autocommit 2022-03-23 14:35:09 CET 2022-03-23 14:35:09 +01:00
Julian Orth
0399772467 autocommit 2022-03-09 17:51:17 CET 2022-03-09 17:51:17 +01:00
Julian Orth
aa0cb94143 autocommit 2022-03-02 14:24:07 CET 2022-03-02 14:24:07 +01:00