Am 03.07.2013 14:50, schrieb Eugene Shatokhin: > If absolute positions are used, 'mouse_button' command moved mouse > pointer to (0, 0) before generating a mouse button event. The event was > therefore generated at incorrect position. > > This problem is now fixed. > > Signed-off-by: Eugene Shatokhin <eugene.shatok...@rosalab.ru>
This patch has been rejected before. I had suggested a different solution but that was not fully accepted either and I haven't respun yet: http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg02506.html Andreas > --- > monitor.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/monitor.c b/monitor.c > index 9be515c..d742942 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -1267,6 +1267,9 @@ static void do_sum(Monitor *mon, const QDict *qdict) > monitor_printf(mon, "%05d\n", sum); > } > > +static int mouse_x; > +static int mouse_y; > +static int mouse_z; > static int mouse_button_state; > > static void do_mouse_move(Monitor *mon, const QDict *qdict) > @@ -1281,13 +1284,22 @@ static void do_mouse_move(Monitor *mon, const QDict > *qdict) > if (dz_str) > dz = strtol(dz_str, NULL, 0); > kbd_mouse_event(dx, dy, dz, mouse_button_state); > + if (kbd_mouse_is_absolute()) { > + mouse_x = dx; > + mouse_y = dy; > + mouse_z = dz; > + } > } > > static void do_mouse_button(Monitor *mon, const QDict *qdict) > { > int button_state = qdict_get_int(qdict, "button_state"); > mouse_button_state = button_state; > - kbd_mouse_event(0, 0, 0, mouse_button_state); > + if (kbd_mouse_is_absolute()) { > + kbd_mouse_event(mouse_x, mouse_y, mouse_z, mouse_button_state); > + } else { > + kbd_mouse_event(0, 0, 0, mouse_button_state); > + } > } > > static void do_ioport_read(Monitor *mon, const QDict *qdict) > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg