summaryrefslogtreecommitdiffstats
path: root/xorg/X11R7.6
diff options
context:
space:
mode:
Diffstat (limited to 'xorg/X11R7.6')
-rw-r--r--xorg/X11R7.6/rdp/rdpinput.c12
-rw-r--r--xorg/X11R7.6/rdp/rdpup.c68
2 files changed, 56 insertions, 24 deletions
diff --git a/xorg/X11R7.6/rdp/rdpinput.c b/xorg/X11R7.6/rdp/rdpinput.c
index 3fd4bcf4..d1e4949a 100644
--- a/xorg/X11R7.6/rdp/rdpinput.c
+++ b/xorg/X11R7.6/rdp/rdpinput.c
@@ -455,9 +455,9 @@ rdpMouseCtrl(DeviceIntPtr pDevice, PtrCtrl *pCtrl)
int
rdpMouseProc(DeviceIntPtr pDevice, int onoff)
{
- BYTE map[6];
+ BYTE map[8];
DevicePtr pDev;
- Atom btn_labels[6];
+ Atom btn_labels[8];
Atom axes_labels[2];
DEBUG_OUT_INPUT(("rdpMouseProc\n"));
@@ -473,17 +473,21 @@ rdpMouseProc(DeviceIntPtr pDevice, int onoff)
map[3] = 3;
map[4] = 4;
map[5] = 5;
+ map[6] = 6;
+ map[7] = 7;
btn_labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
btn_labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE);
btn_labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
btn_labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
btn_labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
+ btn_labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
+ btn_labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
- InitPointerDeviceStruct(pDev, map, 5, btn_labels, rdpMouseCtrl,
+ InitPointerDeviceStruct(pDev, map, 7, btn_labels, rdpMouseCtrl,
GetMotionHistorySize(), 2, axes_labels);
break;
@@ -866,7 +870,7 @@ PtrAddEvent(int buttonMask, int x, int y)
rdpEnqueueMotion(x, y);
- for (i = 0; i < 5; i++)
+ for (i = 0; i < 7; i++)
{
if ((buttonMask ^ g_old_button_mask) & (1 << i))
{
diff --git a/xorg/X11R7.6/rdp/rdpup.c b/xorg/X11R7.6/rdp/rdpup.c
index 83f50149..b4095772 100644
--- a/xorg/X11R7.6/rdp/rdpup.c
+++ b/xorg/X11R7.6/rdp/rdpup.c
@@ -648,6 +648,14 @@ rdpup_send_rail(void)
return 0;
}
+#define XR_BUTTON1 1
+#define XR_BUTTON2 2
+#define XR_BUTTON3 4
+#define XR_BUTTON4 8
+#define XR_BUTTON5 16
+#define XR_BUTTON6 32
+#define XR_BUTTON7 64
+
/******************************************************************************/
static int
rdpup_process_msg(struct stream *s)
@@ -689,54 +697,74 @@ rdpup_process_msg(struct stream *s)
g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 101:
- g_button_mask = g_button_mask & (~1);
+ case 101: /* left button up */
+ g_button_mask = g_button_mask & (~XR_BUTTON1);
+ PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
+ break;
+ case 102: /* left button down */
+ g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2);
+ g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
+ g_button_mask = g_button_mask | XR_BUTTON1;
+ PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
+ break;
+ case 103: /* right button up */
+ g_button_mask = g_button_mask & (~XR_BUTTON3);
+ PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
+ break;
+ case 104: /* right button down */
+ g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2);
+ g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
+ g_button_mask = g_button_mask | XR_BUTTON3;
+ PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
+ break;
+ case 105: /* middle button down */
+ g_button_mask = g_button_mask & (~XR_BUTTON2);
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 102:
+ case 106: /* middle button up */
g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2);
g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
- g_button_mask = g_button_mask | 1;
+ g_button_mask = g_button_mask | XR_BUTTON2;
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 103:
- g_button_mask = g_button_mask & (~4);
+ case 107: /* button 4 up */
+ g_button_mask = g_button_mask & (~XR_BUTTON4);
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 104:
+ case 108: /* button 4 down */
g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2);
g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
- g_button_mask = g_button_mask | 4;
+ g_button_mask = g_button_mask | XR_BUTTON4;
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 105:
- g_button_mask = g_button_mask & (~2);
+ case 109: /* button 5 up */
+ g_button_mask = g_button_mask & (~XR_BUTTON5);
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 106:
+ case 110: /* button 5 down */
g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2);
g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
- g_button_mask = g_button_mask | 2;
+ g_button_mask = g_button_mask | XR_BUTTON5;
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 107:
- g_button_mask = g_button_mask & (~8);
+ case 111: /* button 6 up */
+ g_button_mask = g_button_mask & (~XR_BUTTON6);
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 108:
+ case 112: /* button 6 down */
g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2);
g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
- g_button_mask = g_button_mask | 8;
+ g_button_mask = g_button_mask | XR_BUTTON6;
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 109:
- g_button_mask = g_button_mask & (~16);
+ case 113: /* button 7 up */
+ g_button_mask = g_button_mask & (~XR_BUTTON7);
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
- case 110:
+ case 114: /* button 7 down */
g_cursor_x = l_bound_by(param1, 0, g_rdpScreen.width - 2);
g_cursor_y = l_bound_by(param2, 0, g_rdpScreen.height - 2);
- g_button_mask = g_button_mask | 16;
+ g_button_mask = g_button_mask | XR_BUTTON7;
PtrAddEvent(g_button_mask, g_cursor_x, g_cursor_y);
break;
case 200: