mirror of
https://github.com/libretro/ppsspp.git
synced 2025-02-10 19:12:12 +00:00
Fix wheel up/down and additional mouse button
This commit is contained in:
parent
b0307301e3
commit
b8ce079829
@ -682,10 +682,22 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
float mouseDeltaX = 0;
|
||||
float mouseDeltaY = 0;
|
||||
int mouseWheelMovedDir = 0;
|
||||
bool mouseCaptured = false;
|
||||
bool windowHidden = false;
|
||||
while (true) {
|
||||
double startTime = time_now_d();
|
||||
|
||||
// SDL2 doesn't consider the mousewheel a button anymore
|
||||
// so let's send the KEY_UP if it was moved last cycle
|
||||
if (mouseWheelMovedDir != 0) {
|
||||
KeyInput key;
|
||||
key.deviceId = DEVICE_ID_MOUSE;
|
||||
key.keyCode = mouseWheelMovedDir > 0 ? NKCODE_EXT_MOUSEWHEEL_UP : NKCODE_EXT_MOUSEWHEEL_DOWN;
|
||||
key.flags = KEY_UP;
|
||||
NativeKey(key);
|
||||
mouseWheelMovedDir = 0;
|
||||
}
|
||||
SDL_Event event, touchEvent;
|
||||
while (SDL_PollEvent(&event)) {
|
||||
float mx = event.motion.x * g_dpi_scale_x;
|
||||
@ -868,6 +880,24 @@ int main(int argc, char *argv[]) {
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
case SDL_BUTTON_MIDDLE:
|
||||
{
|
||||
KeyInput key(DEVICE_ID_MOUSE, NKCODE_EXT_MOUSEBUTTON_3, KEY_DOWN);
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
case SDL_BUTTON_X1:
|
||||
{
|
||||
KeyInput key(DEVICE_ID_MOUSE, NKCODE_EXT_MOUSEBUTTON_4, KEY_DOWN);
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
case SDL_BUTTON_X2:
|
||||
{
|
||||
KeyInput key(DEVICE_ID_MOUSE, NKCODE_EXT_MOUSEBUTTON_5, KEY_DOWN);
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SDL_MOUSEWHEEL:
|
||||
@ -876,17 +906,13 @@ int main(int argc, char *argv[]) {
|
||||
key.deviceId = DEVICE_ID_MOUSE;
|
||||
if (event.wheel.y > 0) {
|
||||
key.keyCode = NKCODE_EXT_MOUSEWHEEL_UP;
|
||||
mouseWheelMovedDir = 1;
|
||||
} else {
|
||||
key.keyCode = NKCODE_EXT_MOUSEWHEEL_DOWN;
|
||||
mouseWheelMovedDir = -1;
|
||||
}
|
||||
key.flags = KEY_DOWN;
|
||||
NativeKey(key);
|
||||
|
||||
// SDL2 doesn't consider the mousewheel a button anymore
|
||||
// so let's send the KEY_UP right away.
|
||||
// Maybe KEY_UP alone will suffice?
|
||||
key.flags = KEY_UP;
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
case SDL_MOUSEMOTION:
|
||||
@ -922,6 +948,24 @@ int main(int argc, char *argv[]) {
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
case SDL_BUTTON_MIDDLE:
|
||||
{
|
||||
KeyInput key(DEVICE_ID_MOUSE, NKCODE_EXT_MOUSEBUTTON_3, KEY_UP);
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
case SDL_BUTTON_X1:
|
||||
{
|
||||
KeyInput key(DEVICE_ID_MOUSE, NKCODE_EXT_MOUSEBUTTON_4, KEY_UP);
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
case SDL_BUTTON_X2:
|
||||
{
|
||||
KeyInput key(DEVICE_ID_MOUSE, NKCODE_EXT_MOUSEBUTTON_5, KEY_UP);
|
||||
NativeKey(key);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user