196330111b
The X11 core protocol does not have support for selection ownership notifications. Until now xfreerdp worked around this issue by always sending a format list pdu to the server after sending the format data response pdu which makes the server side think that the clients clipboard data has changed. This workaround has some severe drawbacks: * it causes unnecessary data transfers because even without local clipboard data changes the same data is always re-transferred over the channel * with some clipboard managers (in the server sessions) you will get massive endless data transfer loops because these managers immediately request the data on clipboard changes. The correct (core X11) way would be polling for selection ownership changes which must include the ability to detect changes to the TIMESTAMP target if the selection owner did not change. The alternative to the poll based approach is using the X Fixes extension in order to get selection ownership notifications. This commit adds support for the XFIXES solution and also moves the complete clipboard related event handling from xf_event.c to xf_cliprdr.c |
||
---|---|---|
.. | ||
cli | ||
.gitignore | ||
CMakeLists.txt | ||
generate_argument_docbook.c | ||
ModuleOptions.cmake | ||
xf_channels.c | ||
xf_channels.h | ||
xf_client.c | ||
xf_client.h | ||
xf_cliprdr.c | ||
xf_cliprdr.h | ||
xf_event.c | ||
xf_event.h | ||
xf_gdi.c | ||
xf_gdi.h | ||
xf_gfx.c | ||
xf_gfx.h | ||
xf_graphics.c | ||
xf_graphics.h | ||
xf_input.c | ||
xf_input.h | ||
xf_keyboard.c | ||
xf_keyboard.h | ||
xf_monitor.c | ||
xf_monitor.h | ||
xf_rail.c | ||
xf_rail.h | ||
xf_tsmf.c | ||
xf_tsmf.h | ||
xf_window.c | ||
xf_window.h | ||
xfreerdp-channels.1.xml | ||
xfreerdp-examples.1.xml | ||
xfreerdp.1.xml.in | ||
xfreerdp.h |