Ian Douglas Scott
3f74a22cca
kms/surface: Fix transform used for blits
...
Use the same logic used `submit_buffer`. This fixes corruption in OBS
when trying to capture a rotated output.
2025-09-02 17:12:37 +02:00
Ian Douglas Scott
9cc68dcbcc
screencopy: Fix transform for damage rect advertised to client
...
This fixes two issues:
- The `area` passed to `to_buffer()` should match the dimensions of the
output/etc. being captured, rather than coming from the damage rect
size.
- The transform needs to be inverted.
Previously, rotated outputs could cause a crash
`xdg-desktop-portal-cosmic`, since the compositor was passing negative
coordinates in `damage`, and the client used the same in
`damage_buffer`. This was causing
https://github.com/pop-os/xdg-desktop-portal-cosmic/issues/165 .
The portal crash no longer occurs, and logging in
xdg-desktop-portal-cosmic shows damage rects that match expectation
while moving the cursor over different corners of a workspace.
2025-09-02 17:12:37 +02:00
Ashley Wulber
bb8e066d6d
feat(config): load cosmic-randr output Lists
2025-08-26 11:30:56 -04:00
Ashley Wulber
416b66b776
refactor(output config): move to config crate
...
this allows the greeter to easily sync to the user config
2025-08-26 11:30:56 -04:00
Victoria Brekenfeld
4a385d5535
config: Allow overriding touchpad state
2025-08-22 18:23:05 +02:00
Ian Douglas Scott
e54f4b4963
protocols/workspace: Set ext workspace id for pinned workspace
...
The `id` is defined to be sent only once, on creation of the handle or
later. And only for workspaces that are "likely to be stable across
multiple sessions".
Set we add an `id` initially for pinned workspaces, and add one when the
workspace is pinned.
The `id` is not supposed to be human readable, so we just use a random
value.
2025-08-22 11:58:07 +02:00
Ian Douglas Scott
f2813f0500
screencopy: Return signalled sync point after shm
...
Shouldn't really matter, but no need to check the fence after this.
It would be good if shm screencopy didn't block here...
2025-08-21 17:09:49 +02:00
Ian Douglas Scott
905d021552
screencopy: Use send_success_when_ready for other forms of capture
...
A little annoying to add a `loop_handle` argument to `render_output`,
but generally straightforward.
2025-08-21 17:09:49 +02:00
Ian Douglas Scott
10c05bc1d4
kms/surface: Don't send screencopysuccess() until sync point is reached
2025-08-21 17:09:49 +02:00
Ian Douglas Scott
28e9024681
kms/surface: Define a PendingImageCopyData, instead of using tuple
...
Adding anything else to this tuple is awkward; defining a simple struct
makes this cleaner.
This also adds a `sync` property, which will come in handy later.
Containing simply the same-named argument that was passed to
`submit_buffer`.
2025-08-21 17:09:49 +02:00
Ian Douglas Scott
f0e0084608
Update smithay, and adjust to use sync points from blit calls
2025-08-21 17:09:49 +02:00
Vukašin Vojinović
7f7ab8bcbe
chore: Rust 2024 edition
...
Set the formatting style to 2021 edition to avoid disrupting existing work.
Remove when possible.
2025-08-21 13:10:11 +02:00
Vukašin Vojinović
35d781dc1e
chore: update dependencies
2025-08-21 13:10:11 +02:00
Vukašin Vojinović
fec7c94605
chore: use std::sync::LazyLock
2025-08-21 13:10:11 +02:00
Victoria Brekenfeld
310cf212eb
kms/device: Don't reconfigure existing outputs on connector_added
2025-08-20 19:41:43 +02:00
Victoria Brekenfeld
b28f92a6e1
focus: Don't consider XWaylandGrab exclusive
2025-08-16 01:19:35 +02:00
Victoria Brekenfeld
73ff0e2c1c
floating/resize: Don't panic if something else cancelled the resize
2025-08-15 16:25:44 +02:00
Victoria Brekenfeld
0095b6d505
order: Newer override-redirect windows are higher in the stack
2025-08-13 16:27:44 +02:00
Victoria Brekenfeld
fce9691947
shell: Correctly handle maximized stacks on move requests
2025-08-13 16:03:03 +02:00
Victoria Brekenfeld
e63921a1f6
input: Handle sticky windows on super+right-click
2025-08-13 16:03:03 +02:00
Victoria Brekenfeld
a4b2294bee
toplevel_mgmt: Fix activating sticky windows
2025-08-13 16:03:03 +02:00
Ian Douglas Scott
2fbf0081ea
Fix compile warnings on nightly
...
Should fix CI test.
2025-08-12 18:03:27 -04:00
Ian Douglas Scott
4031f584ef
Don't crash if GreeterAccessibilityState::config() fails
...
`cosmic-comp` should run without needing the greeter to be running (or
installed).
2025-08-12 18:03:27 -04:00
Ashley Wulber
b3a67bca50
feat: sync state with greeter
2025-08-12 12:51:54 -04:00
Victoria Brekenfeld
74e90f793f
state/lid-inhibit: Take current lid state into account
2025-08-11 18:47:57 +02:00
Victoria Brekenfeld
de43fb1f0e
config: Ignore configs disabling every output
2025-08-11 18:47:57 +02:00
Victoria Brekenfeld
cb2289e7b1
kms: Don't reload outputs for every single event
2025-08-11 18:47:57 +02:00
Victoria Brekenfeld
6897f81984
kms/device: Don't re-enumerate disabled outputs
2025-08-11 18:47:57 +02:00
Christian Duvholt
1db1d8149b
output_configuration: Set wlr_output_head serial number
2025-08-11 13:59:42 +02:00
Victoria Brekenfeld
680542e4e2
kms/surface: Don't attempt to use overlay planes during animations
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
66712009fb
kms/surface: Only skip cursor updates if the application renders consistently
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
a2dda33abe
kms: Add min_vrr refresh rate safety margin
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
c3d2b5f0b7
element: Allow overriding default scanout behaviour
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
be1424f1ca
render/wayland: filter scanout candidates by frametime estimation
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
db9380e6db
kms: Fix direct scanout due to wrong node compare
2025-08-07 19:40:23 +02:00
Victoria Brekenfeld
28a9000833
wayland/compositor: Add per-surface frame time estimation
2025-08-07 19:40:23 +02:00
Ian Douglas Scott
38fe84abcf
Log error return from main() with tracing
...
Previously this was printed to `stderr`, but not written to journald.
2025-08-06 11:45:18 +02:00
Victoria Brekenfeld
9f4db0b28b
floating: Properly scale positions on migration ( fixes #1167 )
2025-08-04 17:11:46 +02:00
Victoria Brekenfeld
7948a97334
kms/surface: Remove old feedback on node-removal
2025-08-04 17:11:22 +02:00
Ashley Wulber
bdef75dc8c
refactor: swap to the activated element's workspace if different
2025-08-01 17:52:45 +02:00
Ashley Wulber
cd5efd0741
refactor: fallback to last active seat for privileged activation token
2025-08-01 17:52:45 +02:00
Ashley Wulber
e1aa8f7cb4
fix: check layer map for root popup surface
2025-07-31 20:40:46 +02:00
Victoria Brekenfeld
a409770df7
kms: Correctly handle the source node not being initialized
2025-07-31 19:12:10 +02:00
Michael Aaron Murphy
86493b7898
improv(stack): use system theme colors
2025-07-31 17:19:49 +02:00
Victoria Brekenfeld
7ccfd7381e
input: Handle lid-switch and disable/enable built-in display
2025-07-31 12:59:32 +02:00
Victoria Brekenfeld
f2fc1e9480
dbus: Take lid-inhibitor-locks on systemd systems
2025-07-31 12:59:32 +02:00
Victoria Brekenfeld
8648d4450e
utils: Abstract built-in output check
2025-07-31 12:59:32 +02:00
Ian Douglas Scott
d6c1ca8c33
Use &dyn to simplify pointer/keyboard/touch target dispatch
...
Requires https://github.com/Smithay/smithay/pull/1334 .
2025-07-30 19:01:32 +02:00
Victoria Brekenfeld
c688786d42
kms/device: Cleanup unused code
2025-07-28 17:46:46 +02:00
Victoria Brekenfeld
fd85e4ea56
kms: Don't incorrectly re-use iterator in update_surface_nodes
2025-07-28 17:46:46 +02:00