diff --git a/src/mouse.c b/src/mouse.c index 936b6380..205c7b69 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -153,7 +153,24 @@ void scrollMouse(int scrollMagnitude, MMMouseWheelDirection scrollDirection) CGEventPost(kCGHIDEventTap, event); #elif defined(USE_X11) - /* TODO Add Code for this platform */ + + int x; + int dir = 4; /* Button 4 is up, 5 is down. */ + Display *display = XGetMainDisplay(); + + if (scrollDirection == DIRECTION_DOWN) + { + dir = 5; + } + + for (x = 0; x < cleanScrollMagnitude; x++) + { + XTestFakeButtonEvent(display, dir, 1, CurrentTime); + XTestFakeButtonEvent(display, dir, 0, CurrentTime); + } + + XFlush(display); + #elif defined(IS_WINDOWS) INPUT mouseScrollInput; mouseScrollInput.type = INPUT_MOUSE;