# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1166203851 0
# Node ID 96b047d22ad5866d66508e64aac22b99b3a5dcd2
# Parent 1b6354023e64af6d02909ac81dfe4b5f4e930dda
Fix pointer encoding in vncfb (middle and right button were swapped).
Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>
---
tools/xenfb/vncfb.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff -r 1b6354023e64 -r 96b047d22ad5 tools/xenfb/vncfb.c
--- a/tools/xenfb/vncfb.c Fri Dec 15 17:29:25 2006 +0000
+++ b/tools/xenfb/vncfb.c Fri Dec 15 17:30:51 2006 +0000
@@ -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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|