Hi,
> + .name = "mouse_move_abs",
> + .args_type = "dx_str:s,dy_str:s,dz_str:s?",
> + .params = "dx dy [dz]",
> + .help = "send mouse move events (absolute coordinates)",
> + .mhandler.cmd = do_mouse_move_abs,
> + },
> +
> +STEXI
> +@item mouse_move_abs @var{dx} @var{dy} [@var{dz}]
I think we should drop the dz parameter (you still can send mouse wheel
events via mouse_move 0 0 dz), and add a optional console parameter
instead ...
> +static void do_mouse_move_abs(Monitor *mon, const QDict *qdict)
> +{
> + int dx, dy, dz, button;
> + const char *dx_str = qdict_get_str(qdict, "dx_str");
> + const char *dy_str = qdict_get_str(qdict, "dy_str");
> + const char *dz_str = qdict_get_try_str(qdict, "dz_str");
> + int weight, height;
... then pick the console here (if specified):
QemuConsole *con = NULL;
if (qdict_get_try_str(qdict, "console")) {
con = qemu_console_lookup_by_index(...)
That's a new hmp-only command tough. IIRC there is (or was?) a policy
that no new hmp-only commands are allowed. Luiz?
A completely different approach would be a qmp command allowing to send
any input event. Given that the new input layer already uses qapi-types
internally this should be pretty straight forward to do (see InputEvent
in qapi-schema.json).
cheers,
Gerd