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

Alon Levy alevy at redhat.com
Mon Oct 25 01:48:06 PDT 2010


On Mon, Oct 25, 2010 at 09:30:02AM +0200, Hans de Goede wrote:
> 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.

Yes, I saw you are listening for those events, but for some reason they are not
triggered when the resolution is changed by the set_monitor_config function. I'm
sorry I didn't investigate further, I just checked to make sure I don't create any
endless feedback loop by seeing that xrandr works fine with my patch, and of course
with this patch changes that are triggered by the monitor_config message (i.e. from
the client side) are reflected.

Could it be that the messages are sent to a different window? or that X doesn't send
those messages to the originating process?

> 
> Regards,
> 
> Hans
> _______________________________________________
> 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