[Spice-devel] [PATCH] vdagent-x11: reopen tablet on resolution change to register new resolution

Hans de Goede hdegoede at redhat.com
Mon Oct 25 00:30:02 PDT 2010


Hi,

On 10/24/2010 03:13 PM, Alon Levy wrote:
> The tablet uinput device is closed and opened by vdagentd as a result of guest_xorg_res.
> So far this message was only sent on startup of vdagent. Unless we resend it
> uinput doesn't know of the changed resolution, and the mouse position in the guest is incorrect.
>
> ---
>   vdagent-x11.c |    3 +++
>   1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/vdagent-x11.c b/vdagent-x11.c
> index 00d1886..a8dadde 100644
> --- a/vdagent-x11.c
> +++ b/vdagent-x11.c
> @@ -789,6 +789,9 @@ void vdagent_x11_set_monitor_config(struct vdagent_x11 *x11,
>                          rotation, CurrentTime);
>       XRRFreeScreenConfigInfo(config);
>       XFlush(x11->display);
> +    x11->width = sizes[best].width;
> +    x11->height = sizes[best].height;
> +    vdagent_x11_send_daemon_guest_xorg_res(x11);
>   }
>
>   void vdagent_x11_clipboard_request(struct vdagent_x11 *x11, uint32_t type)

Hmm, is this really necessary? I'm asking because we are watching for
ConfigureNotify events on the root window and when we get those do
a vdagent_x11_send_daemon_guest_xorg_res(x11). I have not tested the scenario you
are referring to here. But if one changes the guest resolution through
for example system->preferences->monitor, vdagent will get a ConfigureNotify event
and based on that do a vdagent_x11_send_daemon_guest_xorg_res(x11). I would
expect the same to happen if the agent itself changes the resolution.

Regards,

Hans


More information about the Spice-devel mailing list