Module Name:    src
Committed By:   jmcneill
Date:           Fri Dec 30 20:08:00 UTC 2011

Modified Files:
        src/sys/arch/usermode/include: thunk.h
        src/sys/arch/usermode/usermode: thunk.c

Log Message:
report rfb pointer events


To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/sys/arch/usermode/include/thunk.h
cvs rdiff -u -r1.66 -r1.67 src/sys/arch/usermode/usermode/thunk.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/usermode/include/thunk.h
diff -u src/sys/arch/usermode/include/thunk.h:1.52 src/sys/arch/usermode/include/thunk.h:1.53
--- src/sys/arch/usermode/include/thunk.h:1.52	Fri Dec 30 14:20:34 2011
+++ src/sys/arch/usermode/include/thunk.h	Fri Dec 30 20:08:00 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: thunk.h,v 1.52 2011/12/30 14:20:34 jmcneill Exp $ */
+/* $NetBSD: thunk.h,v 1.53 2011/12/30 20:08:00 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2011 Jared D. McNeill <[email protected]>
@@ -187,6 +187,11 @@ typedef struct {
 			uint8_t		down_flag;
 			uint32_t	keysym;
 		} key_event;
+		struct {
+			uint8_t		button_mask;
+			uint16_t	absx;
+			uint16_t	absy;
+		} pointer_event;
 	} data;
 } thunk_rfb_event_t;
 

Index: src/sys/arch/usermode/usermode/thunk.c
diff -u src/sys/arch/usermode/usermode/thunk.c:1.66 src/sys/arch/usermode/usermode/thunk.c:1.67
--- src/sys/arch/usermode/usermode/thunk.c:1.66	Fri Dec 30 14:20:34 2011
+++ src/sys/arch/usermode/usermode/thunk.c	Fri Dec 30 20:08:00 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: thunk.c,v 1.66 2011/12/30 14:20:34 jmcneill Exp $ */
+/* $NetBSD: thunk.c,v 1.67 2011/12/30 20:08:00 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2011 Jared D. McNeill <[email protected]>
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #ifdef __NetBSD__
-__RCSID("$NetBSD: thunk.c,v 1.66 2011/12/30 14:20:34 jmcneill Exp $");
+__RCSID("$NetBSD: thunk.c,v 1.67 2011/12/30 20:08:00 jmcneill Exp $");
 #endif
 
 #include <sys/types.h>
@@ -1216,7 +1216,20 @@ thunk_rfb_poll(thunk_rfb_t *rfb, thunk_r
 		msg_len = 0;
 		break;
 	case THUNK_RFB_POINTER_EVENT:
-		msg_len = sizeof(pointer_event);
+		recv(rfb->clientfd, pointer_event, sizeof(pointer_event),
+		    MSG_NOSIGNAL);
+		event->data.pointer_event.button_mask = pointer_event[0];
+		event->data.pointer_event.absx =
+		    ntohs(*(uint16_t *)&pointer_event[1]);
+		event->data.pointer_event.absy =
+		    ntohs(*(uint16_t *)&pointer_event[3]);
+#ifdef RFB_DEBUG
+		fprintf(stdout, "rfb: pointer mask %02x abs %dx%d\n",
+		    event->data.pointer_event.button_mask,
+		    event->data.pointer_event.absx,
+		    event->data.pointer_event.absy);
+#endif
+		msg_len = 0;
 		break;
 	case THUNK_RFB_CLIENT_CUT_TEXT:
 		recv(rfb->clientfd, client_cut_text, sizeof(client_cut_text),

Reply via email to