diff options
author | emersion <contact@emersion.fr> | 2017-12-14 23:57:44 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2017-12-14 23:57:44 +0100 |
commit | b884025558e750268a06818dc63bc46716c75843 (patch) | |
tree | 3939eb735813fc17fb54529e03874c65d64633e7 /xwayland/selection.c | |
parent | 343efd0c202ba7a2f872f117f6193175f831d97d (diff) |
Deny access to clipboard if no xwayland window is focused
Diffstat (limited to 'xwayland/selection.c')
-rw-r--r-- | xwayland/selection.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/xwayland/selection.c b/xwayland/selection.c index d98f006f..6b55f473 100644 --- a/xwayland/selection.c +++ b/xwayland/selection.c @@ -238,6 +238,7 @@ static void xwm_handle_selection_request(struct wlr_xwm *xwm, (xcb_selection_request_event_t *) event; if (selection_request->selection != xwm->atoms[CLIPBOARD]) { + xwm_send_selection_notify(xwm, XCB_ATOM_NONE); return; } @@ -255,11 +256,19 @@ static void xwm_handle_selection_request(struct wlr_xwm *xwm, } if (xwm->seat->selection_source == NULL) { - wlr_log(L_DEBUG, "not handling selection request:" + wlr_log(L_DEBUG, "not handling selection request: " "no selection source assigned to xwayland seat"); return; } + // No xwayland surface focused, deny access to clipboard + if (xwm->focus_surface == NULL) { + wlr_log(L_DEBUG, "denying read access to clipboard: " + "no xwayland surface focused"); + xwm_send_selection_notify(xwm, XCB_ATOM_NONE); + return; + } + if (selection_request->target == xwm->atoms[TARGETS]) { xwm_send_targets(xwm); } else if (selection_request->target == xwm->atoms[TIMESTAMP]) { @@ -531,6 +540,13 @@ 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]) { |