Fix pointer encoding in vncfb (middle and right button were swapped).
Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>
diff -r 37141c3a3d39 tools/xenfb/vncfb.c
--- a/tools/xenfb/vncfb.c Mon Dec 11 15:06:53 2006 +0000
+++ b/tools/xenfb/vncfb.c Wed Dec 13 09:37:56 2006 +0100
@@ -148,6 +148,10 @@ static int xk2linux[0x10000] = {
[XK_plus] = KEY_EQUAL,
};
+static int btnmap[] = {
+ BTN_LEFT, BTN_MIDDLE, BTN_RIGHT, BTN_FORWARD, BTN_BACK
+};
+
static void on_kbd_event(rfbBool down, rfbKeySym keycode, rfbClientPtr cl)
{
/*
@@ -184,8 +188,11 @@ static void on_ptr_event(int buttonMask,
down = buttonMask & (1 << i);
if (down == last_down)
continue;
- /* FIXME this assumes buttons are numbered the same; verify
they are */
- if (xenfb_send_key(xenfb, down != 0, BTN_MOUSE + i) < 0)
+ if (i >= sizeof(btnmap) / sizeof(*btnmap))
+ break;
+ if (btnmap[i] == 0)
+ break;
+ if (xenfb_send_key(xenfb, down != 0, btnmap[i]) < 0)
fprintf(stderr, "Button %d %s lost (%s)\n",
i, down ? "down" : "up", strerror(errno));
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|