diff options
author | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:58:57 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:58:57 +0200 |
commit | e9132da09462b3d2607a97e2f580cbd3144819eb (patch) | |
tree | 2dfc6a37f2be48a8e61f37d62565e83be4b73186 /nx-X11/programs/Xserver/hw/nxagent/Pointer.c | |
parent | 6f5e20bc49695159bd3b313333591c4eb27ad422 (diff) | |
download | nx-libs-e9132da09462b3d2607a97e2f580cbd3144819eb.tar.gz nx-libs-e9132da09462b3d2607a97e2f580cbd3144819eb.tar.bz2 nx-libs-e9132da09462b3d2607a97e2f580cbd3144819eb.zip |
Imported nxagent-3.4.0-11.tar.gznxagent/3.4.0-11
Summary: Imported nxagent-3.4.0-11.tar.gz
Keywords:
Imported nxagent-3.4.0-11.tar.gz
into Git repository
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Pointer.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Pointer.c | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c index f53dfbe52..9c1bfaace 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c @@ -1,6 +1,6 @@ /**************************************************************************/ /* */ -/* Copyright (c) 2001, 2007 NoMachine, http://www.nomachine.com/. */ +/* Copyright (c) 2001, 2010 NoMachine, http://www.nomachine.com/. */ /* */ /* NXAGENT, NX protocol compression and NX extensions to this software */ /* are copyright of NoMachine. Redistribution and use of the present */ @@ -9,7 +9,7 @@ /* */ /* Check http://www.nomachine.com/licensing.html for applicability. */ /* */ -/* NX and NoMachine are trademarks of NoMachine S.r.l. */ +/* NX and NoMachine are trademarks of Medialogic S.p.A. */ /* */ /* All rights reserved. */ /* */ @@ -57,6 +57,13 @@ is" without express or implied warranty. #undef TEST #undef DEBUG +/* + * The nxagentReversePointerMap array is used to + * memorize remote display pointer map. + */ + +unsigned char nxagentReversePointerMap[MAXBUTTONS]; + void nxagentChangePointerControl(DeviceIntPtr pDev, PtrCtrl *ctrl) { /* @@ -125,6 +132,8 @@ int nxagentPointerProc(DeviceIntPtr pDev, int onoff) return Success; } + nxagentInitPointerMap(); + nxagentEnablePointerEvents(); break; @@ -155,3 +164,28 @@ int nxagentPointerProc(DeviceIntPtr pDev, int onoff) return Success; } + +void nxagentInitPointerMap(void) +{ + int numButtons; + + int i; + + unsigned char pointerMap[MAXBUTTONS]; + + #ifdef DEBUG + fprintf(stderr, "nxagentInitPointerMap: Going to retrieve the " + "pointer map from remote display.\n"); + #endif + + numButtons = XGetPointerMapping(nxagentDisplay, pointerMap, MAXBUTTONS); + + /* + * Computing revers pointer map. + */ + + for (i = 1; i <= numButtons; i++) + { + nxagentReversePointerMap[pointerMap[i - 1] - 1] = i; + } +} |