Fix mouse batching when the delta is negative

This commit is contained in:
Cameron Gutman 2015-05-29 16:40:53 -05:00
parent d79e63b3b7
commit 2a0e5a0491

View File

@ -196,8 +196,8 @@ static void inputSendThreadProc(void* context) {
// If it's a mouse move packet, we can also do batching // If it's a mouse move packet, we can also do batching
else if (holder->packet.mouseMove.header.packetType == htonl(PACKET_TYPE_MOUSE_MOVE)) { else if (holder->packet.mouseMove.header.packetType == htonl(PACKET_TYPE_MOUSE_MOVE)) {
PPACKET_HOLDER mouseBatchHolder; PPACKET_HOLDER mouseBatchHolder;
int totalDeltaX = htons(holder->packet.mouseMove.deltaX); int totalDeltaX = (short)htons(holder->packet.mouseMove.deltaX);
int totalDeltaY = htons(holder->packet.mouseMove.deltaY); int totalDeltaY = (short)htons(holder->packet.mouseMove.deltaY);
for (;;) { for (;;) {
int partialDeltaX; int partialDeltaX;
@ -213,8 +213,8 @@ static void inputSendThreadProc(void* context) {
break; break;
} }
partialDeltaX = htons(mouseBatchHolder->packet.mouseMove.deltaX); partialDeltaX = (short)htons(mouseBatchHolder->packet.mouseMove.deltaX);
partialDeltaY = htons(mouseBatchHolder->packet.mouseMove.deltaY); partialDeltaY = (short)htons(mouseBatchHolder->packet.mouseMove.deltaY);
// Check for overflow // Check for overflow
if (partialDeltaX + totalDeltaX > INT16_MAX || if (partialDeltaX + totalDeltaX > INT16_MAX ||