mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-12 19:41:10 +00:00
gamescope makes its cursor surfaces by attaching an shm buffer, committing, destroying the buffer and only then calling wl_pointer.set_cursor. The compositor kept that buffer only as a reference, so set_cursor found nothing to publish: apps run from the front end (store apps, Flatpaks, emulators) showed DroidDeck's fallback arrow, or no cursor at all after a desktop session had hidden its own. Copy a role-less surface's pixels when its held buffer is destroyed and publish that copy when the surface becomes the cursor, for as long as the surface lives.