]> git.proxmox.com Git - mirror_qemu.git/commitdiff
xenfb: activate input handlers for raw pointer devices
authorOwen Smith <owen.smith@citrix.com>
Fri, 3 Nov 2017 11:56:31 +0000 (11:56 +0000)
committerStefano Stabellini <sstabellini@kernel.org>
Thu, 14 Dec 2017 23:24:43 +0000 (15:24 -0800)
If the frontend requests raw pointers, the input handlers must be
activated to have the input events delivered to the xenfb backend.
Without activation, the input events are delivered to handlers
registered earlier, which would be the emulated USB tablet or
emulated PS/2 mouse.
HVM xen_kbdfront can incorrectly scale absolute coordinates when
the display resolution is not 800x600.

Signed-off-by: Owen Smith <owen.smith@citrix.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
hw/display/xenfb.c

index 776a2ce559ccfe67b953aa432762d08ac6cccce3..d4fc0fa5f22f70ddca1859664365bc5b666161ae 100644 (file)
@@ -387,6 +387,11 @@ static void input_connected(struct XenDevice *xendev)
     in->qkbd = qemu_input_handler_register((DeviceState *)in, &xenfb_keyboard);
     in->qmou = qemu_input_handler_register((DeviceState *)in,
                in->abs_pointer_wanted ? &xenfb_abs_mouse : &xenfb_rel_mouse);
+
+    if (in->raw_pointer_wanted) {
+        qemu_input_handler_activate(in->qkbd);
+        qemu_input_handler_activate(in->qmou);
+    }
 }
 
 static void input_disconnect(struct XenDevice *xendev)