Shawn Wallace
2dd40ecfe8
server: add SlideX/Y constraint adjustment to popups
...
Allows popups that would normally go offscreen to stay visible. X11 doesn't seem
to like windows whose bounds go less than 0x0, so we adjust the position
reported to X11 to make it happy.
I am worried this will have some other implications with popups, but we'll see
what happens.
2025-10-25 15:57:30 -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
0b94ae1eb8
Support client initiated window move (_NET_WM_MOVERESIZE)
...
Part of #185
2025-09-06 13:29:14 -04:00
Shawn Wallace
5a184d4359
Support primary selection
...
This was more tedious than expected.
Fixes #103
2025-08-14 20:59:01 -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
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
56d5cce2d0
server: split XConnection from rest of State refactor
2025-08-06 22:32:00 -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
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
51300780f8
Allow toplevels to reconfigure themselves
2025-05-11 11:46:29 -04:00
Shawn Wallace
c31679aa41
Avoid parenting popups to other popups
...
Fixes #36
2025-04-22 21:39:20 -04:00
Shawn Wallace
0cd5059c42
Don't set viewport for 1x1 windows with scaling
2025-04-13 23:50:13 -04:00
Shawn Wallace
555f9492ad
Properly scale surfaces with fractional scale
2025-04-11 14:09:13 -04:00
Shawn Wallace
8188df0e70
Force buffers to be unscaled
...
Satellite will now force Xwayland to always render with the native
display resolution, and just scale surface sizes accordingly. As a result,
applications won't really respect DPI, but this can be adjusted through
the same means as with normal X11.
Part of #28 .
2025-04-09 00:32:20 -04:00
bbb651
180efb0ba9
Support XDG Activation
...
Test XDG Activation
2025-03-20 09:05:24 -04:00
Shawn Wallace
beb7c3ebe0
Offset output positions to always have positive coordinates
...
Honestly, this is something that should probably be fixed in Xwayland itself,
but they don't seem interested in fixing it:
https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/395#note_555613
Fixes #15
2025-03-16 16:00:10 -04:00
En-En
5bbc4c507a
Use and_then over unwrap for rest of surface.data() use
...
Continues on the #113 fix by eliminating the remaining places the unwrap could occur on
2025-03-15 20:09:40 -04:00
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
54a7ad9e13
server: Unmap popup on popup_done event
...
Seems some applications don't expect their popups to be unmapped without
their consent, so they make act strangely, but at least it doesn't
crash.
Fixes #117
2025-03-12 00:47:26 -04:00
Shawn Wallace
10cb041a80
server: Don't panic on stale wl_pointer ObjectKey
...
Fixes #113
2025-03-04 21:04:59 -05: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
ba9c1a6a3e
cargo fmt + cargo clippy
2025-01-09 00:08:07 -05:00
Shawn Wallace
b699ce62a1
Avoid crashing if entered surface's window is not a known window
...
Not sure how this even happens, but should fix #88
2025-01-07 21:27:27 -05:00
Shawn Wallace
03a53b6ad7
Set primary output when window focused
...
Closes #80
2024-12-18 01:49:55 -05:00
En-En
c45c2ed990
fix: add Event::Move check preventing infinite recursion caused by stale surfaces
2024-12-13 13:00:00 -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
73ca9c91f1
Replace simple_event_shunt macro with proc macro
...
This macro is pretty complicated and I needed to add the ability to
clean keywords, so it makes more sense to have this be a proc macro.
2024-10-25 01:21:58 -04:00
Shawn Wallace
b988762955
cargo fmt
2024-10-23 02:29:45 -04:00
Shawn Wallace
dc1f8a753d
Use wl_keyboard instead of toplevel state for focus
...
Rare TODO comment actually done.
Fixes #64
2024-10-23 02:27:46 -04:00
Shawn Wallace
cf439000a5
Prioritize xdg_output for updating window positions
...
Fixes #46
2024-08-08 01:32:18 -04:00
Shawn Wallace
03a0e1754d
Unconditionally set input focus on activation
...
Wine windows had WM_HINTS.input set to False, and expected use of the
WM_TAKE_FOCUS protocol, but Wayland input is much more absolute, so this
protocol is useless to us. Always focusing windows seems to be fine, so
just do that.
Should fix #35 .
2024-07-07 16:50:28 -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
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
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