Improved ManyMouse handling.
This commit is contained in:
@@ -452,9 +452,6 @@ unsigned short MouseMoveX[2];
|
||||
unsigned short MouseMoveY[2];
|
||||
unsigned short MouseButton[2];
|
||||
|
||||
bool MouseWaiting[2];
|
||||
ManyMouseEvent MouseEvent[2];
|
||||
|
||||
void MultiMouseShutdown()
|
||||
{
|
||||
MouseCount = 0;
|
||||
@@ -470,7 +467,6 @@ void MultiMouseInit()
|
||||
MouseMoveX[0] = MouseMoveX[1] = 0;
|
||||
MouseMoveY[0] = MouseMoveY[1] = 0;
|
||||
MouseButton[0] = MouseButton[1] = 0;
|
||||
MouseWaiting[0] = MouseWaiting[1] = false;
|
||||
atexit(MultiMouseShutdown);
|
||||
|
||||
printf("Using ManyMouse for:\nMouse 0: %s\nMouse 1: %s\n", ManyMouse_DeviceName(0), ManyMouse_DeviceName(1));
|
||||
@@ -490,53 +486,25 @@ unsigned char mouse;
|
||||
void MultiMouseProcess()
|
||||
{
|
||||
ManyMouseEvent event;
|
||||
event.device = ~0;
|
||||
|
||||
MouseMoveX[mouse] = 0;
|
||||
MouseMoveY[mouse] = 0;
|
||||
|
||||
if (MouseWaiting[mouse])
|
||||
while (ManyMouse_PollEvent(&event))
|
||||
{
|
||||
if (MouseEvent[mouse].type == MANYMOUSE_EVENT_RELMOTION)
|
||||
if ((event.device == 0) || (event.device == 1))
|
||||
{
|
||||
if (MouseEvent[mouse].item == 0) { MouseMoveX[mouse] = MouseEvent[mouse].value; }
|
||||
else { MouseMoveY[mouse] = MouseEvent[mouse].value; }
|
||||
}
|
||||
else if (MouseEvent[mouse].type == MANYMOUSE_EVENT_BUTTON)
|
||||
{
|
||||
if (MouseEvent[mouse].item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 0, MouseEvent[mouse].value); }
|
||||
else if (MouseEvent[mouse].item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 1, MouseEvent[mouse].value); }
|
||||
}
|
||||
MouseWaiting[mouse] = false;
|
||||
return;
|
||||
}
|
||||
|
||||
while ((event.device != 0) && (event.device != 1))
|
||||
{
|
||||
if (!ManyMouse_PollEvent(&event))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (event.device == (mouse^1))
|
||||
{
|
||||
MouseEvent[event.device] = event;
|
||||
MouseWaiting[event.device] = true;
|
||||
event.device = ~0;
|
||||
}
|
||||
}
|
||||
|
||||
if (event.type == MANYMOUSE_EVENT_RELMOTION)
|
||||
{
|
||||
if (event.item == 0) { MouseMoveX[mouse] = event.value; }
|
||||
else { MouseMoveY[mouse] = event.value; }
|
||||
if (event.item == 0) { MouseMoveX[event.device] = event.value; }
|
||||
else { MouseMoveY[event.device] = event.value; }
|
||||
}
|
||||
else if (event.type == MANYMOUSE_EVENT_BUTTON)
|
||||
{
|
||||
if (event.item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 0, event.value); }
|
||||
else if (event.item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 1, event.value); }
|
||||
if (event.item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[event.device], 0, event.value); }
|
||||
else if (event.item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[event.device], 1, event.value); }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user