wlroots-hyprland/include/wlr
Manuel Stoeckl edb30a6828 Implement serial validation for selection requests
This change tracks, for each wlr_seat_client, the most recent serial
numbers which were sent to the client. When the client makes a
selection request, wlroots now verifies that the serial number
associated with the selection request was actually provided to that
specific client. This ensures that the client that was most
recently interacted with always has priority for its copy selection
requests, and that no other clients can incorrectly use a larger serial
value and "steal" the role of having the copy selection.

Also, the code used to determine when a given selection is superseded
by a newer request uses < instead of <= to allow clients to make
multiple selection requests with the same serial number and have the
last one hold.

To limit memory use, a ring buffer is used to store runs of sequential
serial numbers, and all serial numbers earlier than the start of the
ring buffer are assumed to be valid. Faking very old serials is
unlikely to be disruptive.

Assuming all clients are correctly written, the only additional
constraint which this patch should impose is that serial numbers
are now bound to seats: clients may not receive a serial number
from an input event on one seat and then use that to request
copy-selection on another seat.
2019-06-30 15:01:05 -04:00
..
backend Add FreeRDP backend for remote desktop support 2019-04-08 08:09:07 -06:00
interfaces output: remove wlr_output_impl.transform 2019-06-16 10:51:49 -04:00
render render/dmabuf: add wlr_dmabuf_attributes_copy 2019-06-07 09:06:11 -04:00
types Implement serial validation for selection requests 2019-06-30 15:01:05 -04:00
util Implement pointer-constraints protocol in wlroots and rootston 2018-09-18 10:14:33 +02:00
backend.h Rename get_present_clock to get_presentation clock, use it 2018-10-04 22:00:22 +02:00
config.h.in Add FreeRDP backend for remote desktop support 2019-04-08 08:09:07 -06:00
meson.build Use #if instead of #ifdef for wlroots config data 2018-11-12 10:12:46 +01:00
version.h.in Revert "Revert "Merge pull request #1194 from ascent12/meson_feature"" 2018-08-24 19:35:02 +12:00
xcursor.h Initial pass on API stability guarantees 2018-07-29 19:20:34 -04:00
xwayland.h xwayland: don't set DISPLAY 2019-03-04 12:54:06 -07:00