diff --git a/xwayland/selection.c b/xwayland/selection.c index 062fbf9c..25386b1a 100644 --- a/xwayland/selection.c +++ b/xwayland/selection.c @@ -541,16 +541,17 @@ static void xwm_handle_selection_notify(struct wlr_xwm *xwm, return; } - // No xwayland surface focused, deny access to clipboard - if (xwm->focus_surface == NULL) { - wlr_log(L_DEBUG, "denying write access to clipboard: " - "no xwayland surface focused"); - return; - } - if (selection_notify->property == XCB_ATOM_NONE) { wlr_log(L_ERROR, "convert selection failed"); } else if (selection_notify->target == xwm->atoms[TARGETS]) { + // No xwayland surface focused, deny access to clipboard + if (xwm->focus_surface == NULL) { + wlr_log(L_DEBUG, "denying write access to clipboard: " + "no xwayland surface focused"); + return; + } + + // This sets the Wayland clipboard (by calling wlr_seat_set_selection) xwm_get_selection_targets(xwm); } else { xwm_get_selection_data(xwm);