Commit graph

22 commits

Author SHA1 Message Date
Shawn Wallace
7df3daba70 Remove ExtraData type from XConnection trait
This was being used to pass the X11 atoms all over the place, but I
realize this is no longer necessary - we can just pass them directly to
our RealConnection when creating it.
2025-03-12 00:55:39 -04:00
Shawn Wallace
653391c7c9 server: auto-fullscreen windows that match an output's dimensions
Fixes #93
2025-02-10 23:08:39 -05:00
Shawn Wallace
3a981c5249 server: don't crash if set_fullscreen fails.
Gotta stop assuming that the X server has my best interests at heart.
Fixes #95
2025-01-25 15:24:11 -05:00
Shawn Wallace
ba9c1a6a3e cargo fmt + cargo clippy 2025-01-09 00:08:07 -05:00
Shawn Wallace
47e7357eab xstate: refactor clipboard selections
Before, every time the clipboard selection changed, satellite would copy
everything on it and force itself to be the clipboard owner, regardless
of X11 or Wayland. Now, satellite is only the owner when the clipboard
owner comes from Wayland, and uses the XFixes extension to watch for
changes in clipboard ownership X11 side. Satellite also now avoids
copying all of the clipboard contents into memory every time, instead
copying directly on request. This is a pretty big change, but should
hopefully help make the clipboard more stable.

Also added some misc test cleanup/using helper functions where possible.
Using the XFixes extension may also end up being necessary for
implementing drag and drop, so it's good the infrastructure is there
now.
2025-01-08 23:57:22 -05:00
Shawn Wallace
03a53b6ad7 Set primary output when window focused
Closes #80
2024-12-18 01:49:55 -05:00
Shawn Wallace
3e6f892d20 Avoid processing events from a reparented window
Should fix #71
2024-11-08 22:37:34 -05:00
Shawn Wallace
b0ee6db9fa Unfocus window on X11 side when keyboard focus is lost
Closes #69 (nice)
2024-10-29 23:24:44 -04:00
Shawn Wallace
c77b66cc93 Add tablet support
Closes #47
2024-10-25 01:21:58 -04:00
Shawn Wallace
cf439000a5 Prioritize xdg_output for updating window positions
Fixes #46
2024-08-08 01:32:18 -04:00
Shawn Wallace
98a81c2668 Support repositioning mapped popups
Requires xdg_wm_base version 3+. Helps make some Steam popups act more
consistently.
2024-07-04 16:02:35 -04:00
Shawn Wallace
ece5d1bd10 Actually properly offset popups on offset outputs
Also update window positions when output positon changes.
2024-07-04 14:57:07 -04:00
Shawn Wallace
3794c4b945 Properly offset popups on offset outputs 2024-07-02 00:16:01 -04:00
Shawn Wallace
d8a9c28fa7 Fix hover when focus is different from hover window
Fixes #14
2024-06-30 02:45:31 -04:00
Shawn Wallace
d3a46b7c8a Fix mouse input on outputs not located at 0,0
Possibly addresses #21.
2024-06-30 01:20:02 -04:00
galister
0a5dddacfd fix crash when handling events with stale HopSlotMap key 2024-06-24 12:48:08 -04:00
Shawn Wallace
017b683af9 Support globals with higher advertised versions than supported
Fixes launching on Gnome.
2024-06-11 21:44:57 -04:00
Shawn Wallace
5e7f2df05e Sync clipboard between X11 and Wayland
You would not believe how much work this was.
Closes #23
2024-06-06 22:41:19 -04:00
Shawn Wallace
2444c2f07b xstate: Ignore Window/Drawable errors
Sometimes, windows will have actually been destroyed before we even
processed the events for it, so if we try to do something like get
properties on windows (as we do whenever a window is mapped) we will get
an error from the X server, but this is fine - we can just ignore this.

Should fix #16, #20, #22, etc.
2024-05-24 00:06:58 -04:00
Shawn Wallace
3b2698f1de Switch to using xwayland shell protocol over WL_SURFACE_ID
Seems to fix #13. This means a hard requirement on Xwayland 23.1.
2024-05-20 18:51:28 -04:00
Shawn Wallace
da82e6907c Add pointer constraints support (zwp_pointer_constraints_v1)
Part of #8
2024-05-20 02:14:18 -04:00
Shawn Wallace
c1fc38c3d2 Reorganize file layout
Moves satellite to be the root package, also allowing it to be built
by default.
2024-05-17 23:01:57 -04:00
Renamed from satellite/src/server/mod.rs (Browse further)