[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*)&timestamp, 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