An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.
Go to file
Quantum 7f5f46c448 [client] wayland: offer all supported clipboard formats
This commit restructures the Wayland clipboard handling for host->VM.

Before, we select one clipboard format and buffers the data for it, to
be presented to spice when needed.

Now, we simply offer all clipboard formats supported, and only when spice
asks for the data do we actually read the wl_data_offer. The wl_data_offer
is kept around until a new offer is presented, the offer invalidated, or
when we lose keyboard focus. This is in accordance with the specification
for wl_data_device::selection, which states that:

> The data_offer is valid until a new data_offer or NULL is received or
> until the client loses keyboard focus. The client must destroy the
> previous selection data_offer, if any, upon receiving this event.

We still buffer the entire clipboard data into memory because we have no
knowledge of the clipboard data size in advance and cannot do incremental
transfers.

Furthermore, if the user performs drag-and-drop on our window, we may have
need to handle multiple wl_data_offer objects at the same time. Therefore,
instead of storing state on the global wlCb object, we instead allocate
memory and store it as user_data on the wl_data_offer. As a result, we also
handle drag-and-drop so that we can free the memory.
2021-06-06 12:20:42 +10:00
.github [host] ci: install libxcb-xfixes0-dev package 2021-03-15 12:12:48 +11:00
client [client] wayland: offer all supported clipboard formats 2021-06-06 12:20:42 +10:00
common [all] normalize copyright on all source files 2021-06-06 11:53:05 +10:00
contrib/redhat [meta] Add SELinux policy 2017-12-14 22:22:44 +11:00
doc [doc] Rerganize content into install and build pages 2021-05-25 19:52:08 +10:00
host [all] normalize copyright on all source files 2021-06-06 11:53:05 +10:00
module [all] normalize copyright on all source files 2021-06-06 11:53:05 +10:00
obs [all] normalize copyright on all source files 2021-06-06 11:53:05 +10:00
profile [all] normalize copyright on all source files 2021-06-06 11:53:05 +10:00
repos [client] spice: update PureSpice to fix #556 2021-06-02 22:19:37 +10:00
resources [res] added LG logo vector graphics 2021-02-21 10:31:48 +11:00
vendor [c-host] windows: update ivshmem driver header and usage 2019-10-24 19:46:09 +11:00
.gitattributes [git] added vcxproj files to crlf exceptions 2017-10-31 20:19:52 +11:00
.gitignore [obs] implemented intial OBS Looking Glass Client plugin 2020-01-10 18:14:08 +11:00
.gitmodules [client] moved spice into a seperate repository 2020-01-31 21:39:57 +11:00
CONTRIBUTORS Fixed typo in word wish 2018-05-31 13:28:36 +10:00
LICENSE added licensing to sources 2017-10-31 19:07:16 +11:00
README.md [doc] README.md: Correct docs link 2021-05-25 20:04:16 +10:00
refresh-copyright [all] add script to refresh copyright 2021-06-06 11:53:05 +10:00
version.cmake [cmake] remove --long from version.cmake 2021-01-01 12:10:35 +11:00

Looking Glass

An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.

Documentation

IMPORTANT

This project contains submodules that must be checked out if building from the git repository! If you are not a developer and just want to compile Looking Glass, please download the source archive from the website instead:

https://looking-glass.io/downloads

Source code for the documentation can be found in the /doc directory.

You may view this locally as HTML by running make html with python3-sphinx installed.