| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure we process the XFixesSetSelectionOwnerNotify event caused by
us setting the clipboard owner to none, directly after setting the owner
to none. Otherwise we may end up changing the clipboard owner to none, after
it has already been re-owned because the XFixesSetSelectionOwnerNotify event
to owner none is event is still pending when we set the new owner, and
then changes the owner back to none once processed messing up our clipboard
ownership state tracking.
I saw this happening when doing copy twice in succession inside the guest.
+ some other misc fixes (memory leak, unneeded XFlush)
|
|
|
|
| |
Thanks to kraxel (Gerd Hoffmann) for finding this.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
1) Deal with receiving an ownership change event before querying the
targets of the previous owner is complete
2) Fix an ugly bug in handle_selection_notify where it would send
the data type using an uninitialized variable
3) Fix a small memleak
|
|
|
|
|
| |
Also put selection requests in a queue so that we are sure to answer
them in the same order as received.
|
| |
|
|
|
|
|
|
| |
Also make the grab_clipboard message argument a list of supported types,
rather then assuming that the clipboard will always contain only one
type.
|
|
|
|
| |
clipboard
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
-Add copyright header to vdagentd.c
-Move main utility functions to group them together with other main
utility funcs and main itself
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
When we receive monitor configuratin, cache it and forward it to
currently connected vdagent clients. When a new vdagent connects send it
the cahced monitor info (if we have any cached monitor info).
|
|
|
|
|
|
|
|
| |
Connecting to the vdagent virtio port will put the mouse in client mode,
which is not something we should do until the vdagent client has told
us the xorg resolution. So delay setting up the uinput device and
creating the vdagent virtio port connection until we know the xorg
resolution.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Get the resolution from the X-server and send it to vdagentd which needs it
for the size of the uinput device. Also notify vdagentd if the resolution
changes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To get a properly functioning agent we will need to split the functionality
into a daemon (vdagentd, which has the rights to open the virtio device and to
create fake input devices for the mouse) and into a client (vdagent) which
runs under Xorg and thus can read / set things like the resolution and
the clipboard and talks to the spice server / client through the daemon.
Since we can have multiple xorg sessions active (through switch user for
example), the daemon supports multiple agent connections. Security
still needs to be filled in I'm afraid (see TODO).
The protocol between the 2 is "described" in vdagentd-proto.h, currently there
is only one vdagentd command, which allows vdagent to tell vdagentd the
xorg screen resolution so that it knows what resolution to use for the
fake absolute input device, and so that it can adjust that resolution
if the xorg resolution changes.
The client included in this commit is purely a test client, which
just sends a hardcoded resolution once and then sits there and does nothing.
|
| |
|
| |
|
| |
|
| |
|
|
|