[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Fix pointer encoding in vncfb (middle and right button were swapped).



# 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.