[Spice-devel] [vdagent-linux 1/2] Reply to TIMESTAMP requests
Alon Levy
alevy at redhat.com
Mon Jul 21 02:42:28 PDT 2014
> This is to please vncviewer.
Commit message can say 'add TIMESTAMP handling'. ACK.
btw wrt the TODO, xsel seems to do the same as you.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1117764
> ---
> src/vdagent-x11-priv.h | 1 +
> src/vdagent-x11.c | 15 +++++++++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/src/vdagent-x11-priv.h b/src/vdagent-x11-priv.h
> index c607850..4a5729b 100644
> --- a/src/vdagent-x11-priv.h
> +++ b/src/vdagent-x11-priv.h
> @@ -83,6 +83,7 @@ struct vdagent_x11 {
> Atom targets_atom;
> Atom incr_atom;
> Atom multiple_atom;
> + Atom timestamp_atom;
> Window root_window[MAX_SCREENS];
> Window selection_window;
> struct udscs_connection *vdagentd;
> diff --git a/src/vdagent-x11.c b/src/vdagent-x11.c
> index c5d54ac..752b337 100644
> --- a/src/vdagent-x11.c
> +++ b/src/vdagent-x11.c
> @@ -218,6 +218,7 @@ struct vdagent_x11 *vdagent_x11_create(struct
> udscs_connection *vdagentd,
> x11->targets_atom = XInternAtom(x11->display, "TARGETS", False);
> x11->incr_atom = XInternAtom(x11->display, "INCR", False);
> x11->multiple_atom = XInternAtom(x11->display, "MULTIPLE", False);
> + x11->timestamp_atom = XInternAtom(x11->display, "TIMESTAMP", False);
> for(i = 0; i < clipboard_format_count; i++) {
> x11->clipboard_formats[i].type = clipboard_format_templates[i].type;
> for(j = 0; clipboard_format_templates[i].atom_names[j]; j++) {
> @@ -1036,6 +1037,20 @@ static void
> vdagent_x11_handle_selection_request(struct vdagent_x11 *x11)
> return;
> }
>
> + if (event->xselectionrequest.target == x11->timestamp_atom) {
> + /* TODO: use more accurate selection time */
> + guint32 timestamp = event->xselectionrequest.time;
> +
> + XChangeProperty(x11->display, event->xselectionrequest.requestor,
> + event->xselectionrequest.property,
> + event->xselectionrequest.target, 32,
> PropModeReplace,
> + (guint8*)×tamp, 1);
> + vdagent_x11_send_selection_notify(x11,
> + event->xselectionrequest.property, NULL);
> + return;
> + }
> +
> +
> if (event->xselectionrequest.target == x11->targets_atom) {
> vdagent_x11_send_targets(x11, selection, event);
> return;
> --
> 1.9.3
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>
More information about the Spice-devel
mailing list