aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-06-13 01:56:07 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2016-06-15 00:33:32 +0200
commit5e17d05aa5bfd2f409725f743f5eb345ea73402f (patch)
tree432e42041ba0311eb07dbe838cf9b8ebe943d002
parent61d0fbea7a27de4d6667b8ee35ca948105efaa2f (diff)
downloadnx-libs-5e17d05aa5bfd2f409725f743f5eb345ea73402f.tar.gz
nx-libs-5e17d05aa5bfd2f409725f743f5eb345ea73402f.tar.bz2
nx-libs-5e17d05aa5bfd2f409725f743f5eb345ea73402f.zip
nxagentReversePointerMap: Don't assume Xevent.xbutton.button is always greater than zero. We have seen Xevent.xbutton.button being set to AnyButton (equaling 0).
Fixes ArcticaProject/nx-libs#92 Fixes X2GoBTS#791
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Events.c4
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Pointer.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Events.c b/nx-X11/programs/Xserver/hw/nxagent/Events.c
index ffb593750..0a6540fa3 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Events.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Events.c
@@ -1252,7 +1252,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was
X.xbutton.subwindow == None))
{
x.u.u.type = ButtonPress;
- x.u.u.detail = inputInfo.pointer -> button -> map[nxagentReversePointerMap[X.xbutton.button - 1]];
+ x.u.u.detail = inputInfo.pointer -> button -> map[nxagentReversePointerMap[X.xbutton.button]];
x.u.keyButtonPointer.time = nxagentLastEventTime = GetTimeInMillis();
if (nxagentOption(Rootless))
@@ -1325,7 +1325,7 @@ FIXME: Don't enqueue the KeyRelease event if the key was
if (minimize != True)
{
x.u.u.type = ButtonRelease;
- x.u.u.detail = inputInfo.pointer -> button -> map[nxagentReversePointerMap[X.xbutton.button - 1]];
+ x.u.u.detail = inputInfo.pointer -> button -> map[nxagentReversePointerMap[X.xbutton.button]];
x.u.keyButtonPointer.time = nxagentLastEventTime = GetTimeInMillis();
if (nxagentOption(Rootless))
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c
index ce2b37a90..8a8ed85b1 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Pointer.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Pointer.c
@@ -186,6 +186,6 @@ void nxagentInitPointerMap(void)
for (i = 1; i <= numButtons; i++)
{
- nxagentReversePointerMap[pointerMap[i - 1] - 1] = i;
+ nxagentReversePointerMap[pointerMap[i - 1]] = i;
}
}