aboutsummaryrefslogtreecommitdiff
path: root/hw/display/xenfb.c
diff options
context:
space:
mode:
authorOwen Smith <owen.smith@citrix.com>2017-11-03 11:56:31 +0000
committerStefano Stabellini <sstabellini@kernel.org>2017-12-14 15:24:43 -0800
commitd12c5b7ddf2cee57f3e72fe6f450203a9ab455ed (patch)
tree234046de7a01cd785da5ed65e48fdd3de607a95b /hw/display/xenfb.c
parent34975e536f3531ad852d724a46280b882ec1bc9d (diff)
downloadqemu-d12c5b7ddf2cee57f3e72fe6f450203a9ab455ed.zip
qemu-d12c5b7ddf2cee57f3e72fe6f450203a9ab455ed.tar.gz
qemu-d12c5b7ddf2cee57f3e72fe6f450203a9ab455ed.tar.bz2
xenfb: activate input handlers for raw pointer devices
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>
Diffstat (limited to 'hw/display/xenfb.c')
-rw-r--r--hw/display/xenfb.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index 776a2ce..d4fc0fa 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -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)