From b49d0ca20e4378db1e9abeb661d72f4c8c070db9 Mon Sep 17 00:00:00 2001 From: Jasson Date: Thu, 19 Jun 2025 13:44:38 -0400 Subject: xwayland: Fix crash when copying from wayland to xwayland (#10786) --- src/protocols/PrimarySelection.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/protocols/PrimarySelection.cpp') diff --git a/src/protocols/PrimarySelection.cpp b/src/protocols/PrimarySelection.cpp index 14df7af5..2b01eddd 100644 --- a/src/protocols/PrimarySelection.cpp +++ b/src/protocols/PrimarySelection.cpp @@ -298,6 +298,7 @@ void CPrimarySelectionProtocol::setSelection(SP source) { if (!DESTDEVICE) { LOGM(LOG, "CWLDataDeviceProtocol::setSelection: cannot send selection to a client without a data_device"); + g_pSeatManager->m_selection.currentPrimarySelection.reset(); return; } @@ -308,9 +309,10 @@ void CPrimarySelectionProtocol::updateSelection() { if (!g_pSeatManager->m_state.pointerFocusResource) return; + auto selection = g_pSeatManager->m_selection.currentPrimarySelection.lock(); auto DESTDEVICE = dataDeviceForClient(g_pSeatManager->m_state.pointerFocusResource->client()); - if (!DESTDEVICE) { + if (!selection || !DESTDEVICE) { LOGM(LOG, "CPrimarySelectionProtocol::updateSelection: cannot send selection to a client without a data_device"); return; } -- cgit v1.2.3