Markus Armbruster
2006-Dec-13 09:28 UTC
[Xen-devel] [PATCH][PVFB][TOOLS] Fix pointer encoding in vncfb
Fix pointer encoding in vncfb (middle and right button were swapped). Signed-off-by: Markus Armbruster <armbru@redhat.com> 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@lists.xensource.com http://lists.xensource.com/xen-devel