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),