Commit graph

152 commits

Author SHA1 Message Date
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
Shawn Wallace
2d3afaa0ec Mention GitHub Discussions in readme and issue opener thingy 2025-05-27 21:44:16 -04:00
Shawn Wallace
5d9ac0ed5c Update dependencies 2025-05-27 21:28:41 -04:00
Shawn Wallace
d7bc38e6e7 xstate: mark _NET_WM_WINDOW_TYPE_MENU/TOOLTIP as popups
Fixes #161
2025-05-27 20:01:12 -04:00
Shawn Wallace
9261c278af server: only update outputs for current mode events
Fixes #164
2025-05-27 19:43:37 -04:00
Shawn Wallace
5c0351ff33 Properly handle rotated outputs
Fixes #160
2025-05-27 19:35:10 -04:00
Shawn Wallace
572fa4a2bf Add Xsettings support, for setting scaling related settings
This allows for most GTK and Qt apps to be scaled properly.
In the case of mixed DPI, it will default to using the smallest monitor scale.
2025-05-23 23:25:33 -04:00
Shawn Wallace
ec9ff64c1e Mark WM_TRANSIENT_FOR windows as toplevel parents 2025-05-13 00:46:02 -04:00
Shawn Wallace
4671f27282 Use _MOTIF_WM_HINTS to determine if window should be popup
Surely this won't go horribly wrong...
Fixes #155
2025-05-12 23:25:17 -04:00
Shawn Wallace
51300780f8 Allow toplevels to reconfigure themselves 2025-05-11 11:46:29 -04:00
Shawn Wallace
378421d356 xstate: add _NET_WM_STATE{_FULLSCREEN} to _NET_SUPPORTED
Fixes #157
2025-05-11 11:30:54 -04:00