On Thu, 22 Apr 2010, Gerd Hoffmann wrote:
Hi,
Had also a look at ps2.c/ps2.h, pckbd.c: There were no changes which
could explain such a behaviour. Also keyboard is very strange which
switches to CAPS LOCK (shift state) very unmotivated.
Hmm. Recent qemu tries hard to make sure vncviewer and guest
capslock/numlock state are in sync. It is a heuristic though and can fail
in certain cases. Try "-vnc $display,no-lock-key-sync", does that help?
Tracked down the problem of the mouse that te mouse is in absolute mouse mode
(verified by logging, therefore coordinates are very high and absolute and
not relative):
static void pointer_event(VncState *vs, int button_mask, int x, int y)
{
...
if (vs->absolute) {
kbd_mouse_event(ds_get_width(vs->ds) > 1 ?
x * 0x7FFF / (ds_get_width(vs->ds) - 1) : 0x4000,
ds_get_height(vs->ds) > 1 ?
y * 0x7FFF / (ds_get_height(vs->ds) - 1) : 0x4000,
dz, buttons);
} else if (vnc_has_feature(vs, VNC_FEATURE_POINTER_TYPE_CHANGE)) {
x -= 0x7FFF;
y -= 0x7FFF;
/////////////////////////////////////////////////////////////
// We get here in (verified by core dump), but we should get into last
// else
/////////////////////////////////////////////////////////////
kbd_mouse_event(x, y, dz, buttons);
} else {
if (vs->last_x != -1)
kbd_mouse_event(x - vs->last_x,
y - vs->last_y,
dz, buttons);
vs->last_x = x;
vs->last_y = y;
}
...
}
Guess problems comes from the following commit (not yet verified):
commit 37c34d9d5d87ea9d51760310c8863b82cb8c055a
Author: Anthony Liguori <address@hidden>
Date: Wed Mar 10 09:38:29 2010 -0600
input: make vnc use mouse mode notifiers
When we switch to absolute mode, we send out a notification (if the
client
supports it). Today, we only send this notification when the client
sends us
a mouse event and we're in the wrong mode.
Signed-off-by: Anthony Liguori <address@hidden>