diff --git a/src/xwayland/XWM.cpp b/src/xwayland/XWM.cpp index 719adcb9..7b57de0f 100644 --- a/src/xwayland/XWM.cpp +++ b/src/xwayland/XWM.cpp @@ -1034,16 +1034,16 @@ void CXWM::initSelection() { } void CXWM::setClipboardToWayland(SXSelection& sel) { - sel.dataSource = makeShared(sel); - if (sel.dataSource->mimes().empty()) { + auto source = makeShared(sel); + if (source->mimes().empty()) { Debug::log(ERR, "[xwm] can't set clipboard: no MIMEs"); - sel.dataSource.reset(); + return; } - if (sel.dataSource) { - Debug::log(LOG, "[xwm] X clipboard at {:x} takes clipboard", (uintptr_t)sel.dataSource.get()); - g_pSeatManager->setCurrentSelection(sel.dataSource); - } + sel.dataSource = source; + + Debug::log(LOG, "[xwm] X clipboard at {:x} takes clipboard", (uintptr_t)sel.dataSource.get()); + g_pSeatManager->setCurrentSelection(sel.dataSource); } void CXWM::getTransferData(SXSelection& sel) {