Clear dangling drag-focus resource on client disconnect


DataDevice::m_dragFocusResource pointed at whichever client's
wl_data_device currently held drag focus, with no destroy-tracking. If
that client disconnected mid-drag, the pointer was left dangling, and
the next pointer motion during the still-active drag would dereference
it in setDragFocus().

Add a data_device_destroy_resource() override to clear
m_dragFocusResource/m_dragFocus when the resource they point at is
actually destroyed.

Pick-to: 6.8 6.11 6.12
Task-number: QTBUG-148611
Change-Id: Ib6c7136bc8ae3fe56dd9b340fd1d0d26acf0e7bf
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
commit9e27ab8d87c9d07254ae71a265e993f8889a1035
parent5f6557dc157d176d1f8835f595583fbdfd6e1c14
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
commit timeThu, 30 Jul 2026 09:34:56 +0000