Commit graph

162 commits

Author SHA1 Message Date
yuko1101
a9188e70bd nix: upgrade nixpkgs to 25.05 to fix build issue 2025-10-05 19:31:24 -04:00
ToxicMushroom
da6693c88a fix: don't print unapplicable warnings when a popup surface has its viewport set. 2025-10-02 19:52:48 -04:00
Shawn Wallace
03368548ba server: raise windows to top on tablet proximity_in
Fixes #238
2025-09-22 17:43:43 -04:00
Shawn Wallace
970728d0d9 Support client initiated window resizing
Closes #185
2025-09-06 13:29:18 -04:00
Shawn Wallace
0b94ae1eb8 Support client initiated window move (_NET_WM_MOVERESIZE)
Part of #185
2025-09-06 13:29:14 -04:00
Shawn Wallace
41e865c8d3 Document _JAVA_AWT_WM_NONREPARENTING
Closes #231
2025-09-02 23:11:56 -04:00
Shawn Wallace
2c30ea7863 xstate: always stack newly mapped windows below
I can't figure out a way to actually test this, but this seems to work in manual testing.
Fixes #146
2025-09-02 23:08:00 -04:00
En-En
0fd0dd75e9 tests: only use PipeWriter if rust-version >= 1.87
By using conditional compilation, we now support running the test suite
with Rust versions 1.83 to 1.86 again. This allows us to lower the
`rust-version` specified in the root Cargo.toml (because it was
controlling the toolchain used in CI) to 1.83, resolving #230.

This solution keeps tests operational on our MSRV while also lowering
it. It would have been unsatisfying to have an MSRV which could not
compile the tests.

`rustversion` was selected as the dependency to control the conditional
compilation since it was already a build dependency needed by
`vergen-gitcl`, so no new dependencies were added.
2025-09-02 20:38:01 -04:00
En-En
c0497c990d deps: use pretty_env_logger as env_logger dep 2025-08-31 18:30:14 -04:00
Supreeeme
1d156aa8d3
Create FUNDING.yml 2025-08-30 12:08:06 -04:00
En-En
bb044a88c6 fix: properly specify subprojects' required features 2025-08-30 12:03:45 -04:00
En-En
8b74001a13 fix: prevent copy tests from failing in Rust 1.90
Issue where changed: https://github.com/rust-lang/rust/issues/139956

Comment noting breakage of non-socket converted to UnixStream: 'https://github.com/rust-lang/rust/pull/140005#issuecomment-2853932531'

Bumps MSRV from 1.83.0 to 1.87.0 by use of PipeWriter
2025-08-30 12:03:15 -04:00
En-En
af33f7eb12 ci: comment logic of set-vars.sh 2025-08-26 22:02:53 -04:00
En-En
fe1796cfa7 ci: restore dependency-storing dockerfile 2025-08-26 22:02:53 -04:00
En-En
9052dd556a ci: rewrite from ground up 2025-08-26 22:02:53 -04:00
En-En
d759c64681 dep: bump xcb to 1.6.0
switch from the deprecated API we found unsoundness in to the one introduced in 1.6.0
2025-08-23 11:39:05 -04:00
Shawn Wallace
388d291e82 Bump version 2025-08-18 00:24:57 -04:00
Shawn Wallace
5a184d4359 Support primary selection
This was more tedious than expected.
Fixes #103
2025-08-14 20:59:01 -04:00
Shawn Wallace
13469566b0 Fix Rust 1.89 mismatched_lifetime_syntaxes lint
https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/#mismatched-lifetime-syntaxes-lint
2025-08-14 01:29:17 -04:00
En-En
e0d1dad25a server: clean unneeded deref_mut calls 2025-08-06 22:32:00 -04:00
En-En
cbabd591a3 server: impl Deref(Mut) for ServerState to Inner coercion 2025-08-06 22:32:00 -04:00
En-En
fe28bcb880 fix(test): stabilize integration tests 2025-08-06 22:32:00 -04:00
En-En
be9d573fd6 server: make state's client and connection mandatory
The goal of the previous commits being to remove these unwraps. The `unwrap_or_skip_bad_window` changes needed to make a singular debug conditional
2025-08-06 22:32:00 -04:00
En-En
4280639df8 server: give uninitialized and initialized xstate with unique types 2025-08-06 22:32:00 -04:00
En-En
56d5cce2d0 server: split XConnection from rest of State refactor 2025-08-06 22:32:00 -04:00
Shawn Wallace
ecbe57e7be Document -listenfd support 2025-08-05 00:12:22 -04:00
Johannes Horner
ba78881a68 nix: Set mainProgram attribute 2025-07-12 12:33:20 -04:00
Shawn Wallace
e4bb8c3f9d cargo clippy everywhere 2025-07-12 12:32:20 -04:00
Shawn Wallace
07847e11d7 server: unscale locked pointer cursor hint
Fix #199, fix #202, fix #204
2025-07-12 12:20:21 -04:00
Shawn Wallace
557ebeb616 xstate/settings: Clamp scale to >=1
Avoids crashing, and GTK apps also seem to generally dislike
when the reported DPI is less than the default.

Fixes #181
2025-06-29 16:24:45 -04:00
skyrelia
ef24bce5d9 Recognize drag and drop window type
Fixes #166
2025-06-29 16:15:20 -04:00
Shawn Wallace
0b2a139f98 server: verify window still exists when processing surface serial
Should fix #191
2025-06-29 16:02:02 -04:00
Shawn Wallace
91d463851e server: fix selection cancellation
oopsie
2025-06-29 01:49:11 -04:00
Shawn Wallace
cf1fae1eae server: verify selection offer is still valid when handling clipboard
Should fix #170, fix #183
2025-06-29 01:37:24 -04:00
Shawn Wallace
2e7c318ac2 server: check if connected to x server when output offset updates
Caused by the compositor reporting negative output coordinates to start.

Fixes #187
2025-06-24 23:21:20 -04:00
En-En
117af56a83 Refactor double let else blocks to use as_mut 2025-06-23 09:54:29 -04:00
En-En
8dc4538662 Removed additional dubious unwraps
The wl_keyboard Enter event, wl_keyboard Leave event, the wl_touch
Self::Down event and the ServerState::reconfigure_window function had
similar uses of `unwrap` which appear to not consider the distinct
query preparation and query execution stages.
2025-06-23 09:54:29 -04:00
En-En
da3b2838d2 Fixed stale surface check unwrapping
Regression from 799027d1. Unwraps on a None value when doing the stale surface generation technique in Chatterino7 as described in #74, very consistent
2025-06-23 09:54:29 -04:00
Shawn Wallace
03cbb2ee3a server: scale tablet_tool motion events
Also add missing Distance event handler.
Closes #179, closes #123
2025-06-19 23:05:15 -04:00
Shawn Wallace
70f15d5085 server: scale wl_touch events
Fixes #172
2025-06-19 21:06:51 -04:00
Shawn Wallace
b98fa84524 Use fractional scaling when setting scale through xsettings
Fixes #168
2025-06-19 17:02:42 -04:00
Shawn Wallace
799027d1ae server: refactor to use ECS
This should simplify how some of the code reads, as well as allowing for future
feature additions to be accomplished in a less restrictive manner. The slotmap +
Object enum pattern was kind of like a really bad ecs in a way anyway. Also I
was looking for an excuse to use an ecs.
2025-06-19 00:55:08 -04:00
Ivan Molodetskikh
da2ecb5be8 Add --test-listenfd-support flag
Just exits with 0. Useful to test whether xwayland-satellite supports -listenfd
before setting up the X11 sockets and stuff on the compositor side. Versions
before this commit panic and exit with nonzero code.
2025-06-07 12:59:01 -04:00
Ivan Molodetskikh
9e48795087 Accept -listenfd and pass on to Xwayland 2025-06-07 12:59:01 -04:00
Ivan Molodetskikh
ac391db415 xstate: Set WM_S0 atom at startup
Xwayland waits for this before starting to listen on the -listenfd descriptors
if either -wm or -initfd is set.

- https://gitlab.freedesktop.org/xorg/xserver/-/blob/xwayland-24.1.6/hw/xwayland/xwayland.c?ref_type=tags#L463-472
- https://gitlab.freedesktop.org/xorg/xserver/-/blob/xwayland-24.1.6/hw/xwayland/xwayland.c?ref_type=tags#L300-317
2025-06-07 12:59:01 -04:00
Shawn Wallace
3ba30b149f Bump version 2025-05-28 23:14:15 -04:00
Shawn Wallace
de6790934b Add git revision to log 2025-05-28 23:10:53 -04:00
Shawn Wallace
ae1759077e Don't pass invalid positioner size on popup reconfigure
Mentioned in #144
2025-05-28 22:24:54 -04:00
Shawn Wallace
76ace3c656 ok move it for real this time 2025-05-27 21:47:20 -04:00
Shawn Wallace
9910807205 Move config.yml to the right place 2025-05-27 21:46:53 -04:00