diff --git a/backends/msmouse.c b/backends/msmouse.c
index c0dbfcd..1d24ac6 100644
--- a/backends/msmouse.c
+++ b/backends/msmouse.c
@@ -72,7 +72,8 @@ CharDriverState *qemu_chr_open_msmouse(void)
     chr->chr_close = msmouse_chr_close;
     chr->explicit_be_open = true;
 
-    qemu_add_mouse_event_handler(msmouse_event, chr, 0, "QEMU Microsoft Mouse");
+    qemu_add_mouse_event_handler(msmouse_event, chr, false,
+                                 "QEMU Microsoft Mouse");
 
     return chr;
 }
diff --git a/hw/char/escc.c b/hw/char/escc.c
index c2cb07f..68a49cd 100644
--- a/hw/char/escc.c
+++ b/hw/char/escc.c
@@ -891,7 +891,7 @@ static int escc_init1(SysBusDevice *dev)
     sysbus_init_mmio(dev, &s->mmio);
 
     if (s->chn[0].type == mouse) {
-        qemu_add_mouse_event_handler(sunmouse_event, &s->chn[0], 0,
+        qemu_add_mouse_event_handler(sunmouse_event, &s->chn[0], false,
                                      "QEMU Sun Mouse");
     }
     if (s->chn[1].type == kbd) {
diff --git a/hw/display/ads7846.c b/hw/display/ads7846.c
index 5da3dc5..4a02744 100644
--- a/hw/display/ads7846.c
+++ b/hw/display/ads7846.c
@@ -145,8 +145,8 @@ static int ads7846_init(SSISlave *dev)
     s->input[7] = ADS_TEMP1;	/* TEMP1 */
 
     /* We want absolute coordinates */
-    qemu_add_mouse_event_handler(ads7846_ts_event, s, 1,
-                    "QEMU ADS7846-driven Touchscreen");
+    qemu_add_mouse_event_handler(ads7846_ts_event, s, true,
+                                 "QEMU ADS7846-driven Touchscreen");
 
     ads7846_int_update(s);
 
diff --git a/hw/input/adb.c b/hw/input/adb.c
index a75d3fd..104bfc8 100644
--- a/hw/input/adb.c
+++ b/hw/input/adb.c
@@ -536,7 +536,7 @@ static void adb_mouse_realizefn(DeviceState *dev, Error **errp)
 
     amc->parent_realize(dev, errp);
 
-    qemu_add_mouse_event_handler(adb_mouse_event, s, 0, "QEMU ADB Mouse");
+    qemu_add_mouse_event_handler(adb_mouse_event, s, false, "QEMU ADB Mouse");
 }
 
 static void adb_mouse_initfn(Object *obj)
diff --git a/hw/input/hid.c b/hw/input/hid.c
index 14b3125..7a3a7a4 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -433,11 +433,13 @@ void hid_init(HIDState *hs, int kind, HIDEventFunc event)
     if (hs->kind == HID_KEYBOARD) {
         hs->kbd.eh_entry = qemu_add_kbd_event_handler(hid_keyboard_event, hs);
     } else if (hs->kind == HID_MOUSE) {
-        hs->ptr.eh_entry = qemu_add_mouse_event_handler(hid_pointer_event, hs,
-                                                        0, "QEMU HID Mouse");
+        hs->ptr.eh_entry = qemu_add_mouse_event_handler(hid_pointer_event,
+                                                        hs, false,
+                                                        "QEMU HID Mouse");
     } else if (hs->kind == HID_TABLET) {
-        hs->ptr.eh_entry = qemu_add_mouse_event_handler(hid_pointer_event, hs,
-                                                        1, "QEMU HID Tablet");
+        hs->ptr.eh_entry = qemu_add_mouse_event_handler(hid_pointer_event,
+                                                        hs, true,
+                                                        "QEMU HID Tablet");
     }
 }
 
diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index 3412079..e555f74 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -670,7 +670,7 @@ void *ps2_mouse_init(void (*update_irq)(void *, int), void *update_arg)
     s->common.update_irq = update_irq;
     s->common.update_arg = update_arg;
     vmstate_register(NULL, 0, &vmstate_ps2_mouse, s);
-    qemu_add_mouse_event_handler(ps2_mouse_event, s, 0, "QEMU PS/2 Mouse");
+    qemu_add_mouse_event_handler(ps2_mouse_event, s, false, "QEMU PS/2 Mouse");
     qemu_register_reset(ps2_mouse_reset, s);
     return s;
 }
diff --git a/hw/input/tsc2005.c b/hw/input/tsc2005.c
index a771cd5..b0d9263 100644
--- a/hw/input/tsc2005.c
+++ b/hw/input/tsc2005.c
@@ -544,8 +544,8 @@ void *tsc2005_init(qemu_irq pintdav)
 
     tsc2005_reset(s);
 
-    qemu_add_mouse_event_handler(tsc2005_touchscreen_event, s, 1,
-                    "QEMU TSC2005-driven Touchscreen");
+    qemu_add_mouse_event_handler(tsc2005_touchscreen_event, s, true,
+                                 "QEMU TSC2005-driven Touchscreen");
 
     qemu_register_reset((void *) tsc2005_reset, s);
     register_savevm(NULL, "tsc2005", -1, 0, tsc2005_save, tsc2005_load, s);
diff --git a/hw/input/tsc210x.c b/hw/input/tsc210x.c
index 9b854e7..02d3440 100644
--- a/hw/input/tsc210x.c
+++ b/hw/input/tsc210x.c
@@ -1137,8 +1137,8 @@ uWireSlave *tsc2102_init(qemu_irq pint)
 
     tsc210x_reset(s);
 
-    qemu_add_mouse_event_handler(tsc210x_touchscreen_event, s, 1,
-                    "QEMU TSC2102-driven Touchscreen");
+    qemu_add_mouse_event_handler(tsc210x_touchscreen_event, s, true,
+                                 "QEMU TSC2102-driven Touchscreen");
 
     AUD_register_card(s->name, &s->card);
 
@@ -1188,8 +1188,8 @@ uWireSlave *tsc2301_init(qemu_irq penirq, qemu_irq kbirq, qemu_irq dav)
 
     tsc210x_reset(s);
 
-    qemu_add_mouse_event_handler(tsc210x_touchscreen_event, s, 1,
-                    "QEMU TSC2301-driven Touchscreen");
+    qemu_add_mouse_event_handler(tsc210x_touchscreen_event, s, true,
+                                 "QEMU TSC2301-driven Touchscreen");
 
     AUD_register_card(s->name, &s->card);
 
diff --git a/hw/input/vmmouse.c b/hw/input/vmmouse.c
index a610738..2b2ea88 100644
--- a/hw/input/vmmouse.c
+++ b/hw/input/vmmouse.c
@@ -114,7 +114,7 @@ static void vmmouse_remove_handler(VMMouseState *s)
     }
 }
 
-static void vmmouse_update_handler(VMMouseState *s, int absolute)
+static void vmmouse_update_handler(VMMouseState *s, uint8_t absolute)
 {
     if (s->status != 0) {
         return;
diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
index 3be5cde..78563ff 100644
--- a/hw/usb/dev-wacom.c
+++ b/hw/usb/dev-wacom.c
@@ -170,8 +170,8 @@ static int usb_mouse_poll(USBWacomState *s, uint8_t *buf, int len)
     int dx, dy, dz, b, l;
 
     if (!s->mouse_grabbed) {
-        s->eh_entry = qemu_add_mouse_event_handler(usb_mouse_event, s, 0,
-                        "QEMU PenPartner tablet");
+        s->eh_entry = qemu_add_mouse_event_handler(usb_mouse_event, s, false,
+                                                   "QEMU PenPartner tablet");
         qemu_activate_mouse_event_handler(s->eh_entry);
         s->mouse_grabbed = 1;
     }
@@ -208,8 +208,8 @@ static int usb_wacom_poll(USBWacomState *s, uint8_t *buf, int len)
     int b;
 
     if (!s->mouse_grabbed) {
-        s->eh_entry = qemu_add_mouse_event_handler(usb_wacom_event, s, 1,
-                        "QEMU PenPartner tablet");
+        s->eh_entry = qemu_add_mouse_event_handler(usb_wacom_event, s, true,
+                                                   "QEMU PenPartner tablet");
         qemu_activate_mouse_event_handler(s->eh_entry);
         s->mouse_grabbed = 1;
     }
diff --git a/include/ui/console.h b/include/ui/console.h
index f1d79f9..e25879f 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -37,7 +37,7 @@ QEMUPutKbdEntry *qemu_add_kbd_event_handler(QEMUPutKBDEvent *func,
                                             void *opaque);
 void qemu_remove_kbd_event_handler(QEMUPutKbdEntry *entry);
 QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func,
-                                                void *opaque, int absolute,
+                                                void *opaque, bool absolute,
                                                 const char *name);
 void qemu_remove_mouse_event_handler(QEMUPutMouseEntry *entry);
 void qemu_activate_mouse_event_handler(QEMUPutMouseEntry *entry);
@@ -50,12 +50,12 @@ void kbd_put_ledstate(int ledstate);
 void kbd_mouse_event(int dx, int dy, int dz, int buttons_state);
 
 /* Does the current mouse generate absolute events */
-int kbd_mouse_is_absolute(void);
+bool kbd_mouse_is_absolute(void);
 void qemu_add_mouse_mode_change_notifier(Notifier *notify);
 void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 
 /* Of all the mice, is there one that generates absolute events */
-int kbd_mouse_has_absolute(void);
+bool kbd_mouse_has_absolute(void);
 
 struct MouseTransformInfo {
     /* Touchscreen resolution */
diff --git a/ui/input.c b/ui/input.c
index 28353b4..76ded94 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -33,7 +33,7 @@
 struct QEMUPutMouseEntry {
     QEMUPutMouseEvent *put_event;
     void *opaque;
-    int absolute;
+    bool absolute;
     char *name;
 
     int index;
@@ -347,7 +347,7 @@ static void check_mode_change(void)
 }
 
 QEMUPutMouseEntry *qemu_add_mouse_event_handler(QEMUPutMouseEvent *func,
-                                                void *opaque, int absolute,
+                                                void *opaque, bool absolute,
                                                 const char *name)
 {
     QEMUPutMouseEntry *s;
@@ -477,7 +477,7 @@ void kbd_mouse_event(int dx, int dy, int dz, int buttons_state)
     }
 }
 
-int kbd_mouse_is_absolute(void)
+bool kbd_mouse_is_absolute(void)
 {
     if (QTAILQ_EMPTY(&mouse_handlers)) {
         return 0;
@@ -486,17 +486,17 @@ int kbd_mouse_is_absolute(void)
     return QTAILQ_FIRST(&mouse_handlers)->absolute;
 }
 
-int kbd_mouse_has_absolute(void)
+bool kbd_mouse_has_absolute(void)
 {
     QEMUPutMouseEntry *entry;
 
     QTAILQ_FOREACH(entry, &mouse_handlers, node) {
         if (entry->absolute) {
-            return 1;
+            return true;
         }
     }
 
-    return 0;
+    return false;
 }
 
 MouseInfoList *qmp_query_mice(Error **errp)
@@ -510,7 +510,7 @@ MouseInfoList *qmp_query_mice(Error **errp)
         info->value = g_malloc0(sizeof(*info->value));
         info->value->name = g_strdup(cursor->name);
         info->value->index = cursor->index;
-        info->value->absolute = !!cursor->absolute;
+        info->value->absolute = cursor->absolute;
         info->value->current = current;
 
         current = false;
