Gerd Hoffmann <[email protected]> writes: > 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?
HMP-only commands are okay only when the functionality they provide does not make sense in QMP. For anything else, we need a QMP command first. The command proper is generally a thin wrapper around an equivalent internal C function. If an HMP command is desired, it should call that C function. [...]
