Skip to content

core/events: Use Wayland serial to check alive on event

Marco Trevisan requested to merge 3v1n0/mutter:dnd-ping-sync into main

In some scenarios under wayland DnD may not work because the start-drag serial is not matching the one we expect for the pointer that we set when handling the button event.

This is because since commit 26676a82 we're repeatedly pinging the windows at each event to ensure that they're still alive, but we're using the event timestamp for that, and this makes wayland to use such value as the start-drag serial.

To avoid this, let's be consistent and always use the wayland serial to ping the windows. This won't change during drag operations, but it is something we still support because pings with repeated serials are still allowed for the same window by meta_display_ping_window(), and will still eventually lead to timeouts or to increase the number of queued events waiting for a pong.

Fixes #2216

Merge request reports