diff --git a/xwayland/selection.c b/xwayland/selection.c index 07d1d48f..3d57f394 100644 --- a/xwayland/selection.c +++ b/xwayland/selection.c @@ -466,6 +466,7 @@ static int xwm_handle_xfixes_selection_notify(struct wlr_xwm *xwm, return 1; } + int xwm_handle_selection_event(struct wlr_xwm *xwm, xcb_generic_event_t *event) { if (!xwm->seat) { @@ -541,25 +542,13 @@ static void handle_seat_set_selection(struct wl_listener *listener, return; } - if (source->send == data_source_send) { + if (source->send == data_source_send) return; - } - xwm_set_selection_owner(xwm); -} - -void xwm_set_selection_owner(struct wlr_xwm *xwm) { - if (xwm->focus_surface && xwm->seat->selection_source) { - xcb_set_selection_owner(xwm->xcb_conn, - xwm->selection_window, - xwm->atoms[CLIPBOARD], - XCB_TIME_CURRENT_TIME); - } else { - xcb_set_selection_owner(xwm->xcb_conn, - XCB_ATOM_NONE, - xwm->atoms[CLIPBOARD], - xwm->selection_timestamp); - } + xcb_set_selection_owner(xwm->xcb_conn, + xwm->selection_window, + xwm->atoms[CLIPBOARD], + XCB_TIME_CURRENT_TIME); } void xwm_set_seat(struct wlr_xwm *xwm, struct wlr_seat *seat) { diff --git a/xwayland/xwm.c b/xwayland/xwm.c index a93f3525..f1add638 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -175,7 +175,6 @@ void xwm_surface_activate(struct wlr_xwm *xwm, xwm_send_focus_window(xwm, xsurface); xwm->focus_surface = xsurface; - xwm_set_selection_owner(xwm); xcb_flush(xwm->xcb_conn); } diff --git a/xwayland/xwm.h b/xwayland/xwm.h index ad8bf9d5..47e674c0 100644 --- a/xwayland/xwm.h +++ b/xwayland/xwm.h @@ -98,8 +98,6 @@ void xwm_set_cursor(struct wlr_xwm *xwm, const uint8_t *pixels, uint32_t stride, int xwm_handle_selection_event(struct wlr_xwm *xwm, xcb_generic_event_t *event); -void xwm_set_selection_owner(struct wlr_xwm *xwm); - void xwm_selection_init(struct wlr_xwm *xwm); void xwm_set_seat(struct wlr_xwm *xwm, struct wlr_seat *seat);