1
0
Fork 0

Don't parse mouse button release and presses with numbers outside the amount of reported buttons.

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3532
This commit is contained in:
Peter Veenstra 2010-01-11 14:56:30 +00:00
parent 79bcdc6c38
commit 3e936332a5

View file

@ -496,18 +496,26 @@ void Mouse_CursorSet(float x,float y) {
void Mouse_ButtonPressed(Bit8u button) {
switch (button) {
#if (MOUSE_BUTTONS >= 1)
case 0:
mouse.buttons|=1;
Mouse_AddEvent(MOUSE_LEFT_PRESSED);
break;
#endif
#if (MOUSE_BUTTONS >= 2)
case 1:
mouse.buttons|=2;
Mouse_AddEvent(MOUSE_RIGHT_PRESSED);
break;
#endif
#if (MOUSE_BUTTONS >= 3)
case 2:
mouse.buttons|=4;
Mouse_AddEvent(MOUSE_MIDDLE_PRESSED);
break;
#endif
default:
return;
}
mouse.times_pressed[button]++;
mouse.last_pressed_x[button]=POS_X;
@ -516,18 +524,26 @@ void Mouse_ButtonPressed(Bit8u button) {
void Mouse_ButtonReleased(Bit8u button) {
switch (button) {
#if (MOUSE_BUTTONS >= 1)
case 0:
mouse.buttons&=~1;
Mouse_AddEvent(MOUSE_LEFT_RELEASED);
break;
#endif
#if (MOUSE_BUTTONS >= 2)
case 1:
mouse.buttons&=~2;
Mouse_AddEvent(MOUSE_RIGHT_RELEASED);
break;
#endif
#if (MOUSE_BUTTONS >= 3)
case 2:
mouse.buttons&=~4;
Mouse_AddEvent(MOUSE_MIDDLE_RELEASED);
break;
#endif
default:
return;
}
mouse.times_released[button]++;
mouse.last_released_x[button]=POS_X;