Add "Five + 2 Wheels" option for horizontal wheel reporting

This commit is contained in:
Cacodemon345
2025-03-20 00:56:13 +06:00
parent e932bc940d
commit 00c97dac1c
6 changed files with 102 additions and 17 deletions

View File

@@ -37,6 +37,7 @@ CocoaEventFilter::nativeEventFilter(const QByteArray &eventType, void *message,
return true;
}
if ([event type] == NSEventTypeScrollWheel) {
mouse_set_w(-[event deltaX]);
mouse_set_z([event deltaY]);
return true;
}

View File

@@ -210,8 +210,10 @@ RendererStack::wheelEvent(QWheelEvent *event)
#if !defined(Q_OS_WINDOWS) && !defined(__APPLE__)
double numSteps = (double) event->angleDelta().y() / 120.0;
double numStepsW = (double) event->angleDelta().x() / 120.0;
mouse_set_z((int) numSteps);
mouse_set_w((int) numStepsW);
#endif
event->accept();
}

View File

@@ -330,6 +330,7 @@ WindowsRawInputFilter::mouse_handle(PRAWINPUT raw)
static int x, delta_x;
static int y, delta_y;
static int b, delta_z;
static int delta_w;
b = mouse_get_buttons_ex();
@@ -367,6 +368,12 @@ WindowsRawInputFilter::mouse_handle(PRAWINPUT raw)
} else
delta_z = 0;
if (state.usButtonFlags & RI_MOUSE_HWHEEL) {
delta_w = (SHORT) state.usButtonData / 120;
mouse_set_w(delta_w);
} else
delta_w = 0;
if (state.usFlags & MOUSE_MOVE_ABSOLUTE) {
/* absolute mouse, i.e. RDP or VNC
* seems to work fine for RDP on Windows 10