Skip to content

Commit 1061592

Browse files
committed
feat(linux): add mouse wheel event handing for x11 (#54)
1 parent 9b4c005 commit 1061592

1 file changed

Lines changed: 19 additions & 4 deletions

File tree

src/platform/linux/linux_x11mouse.c

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,29 @@ static void OnMotionNotify(LCUI_Event e, void *arg)
5353
LCUI_DestroyEvent(&sys_ev);
5454
}
5555

56+
#define MOUSE_WHEEL_DELTA 20
57+
5658
static void OnButtonPress(LCUI_Event e, void *arg)
5759
{
5860
XEvent *ev = arg;
5961
LCUI_SysEventRec sys_ev;
60-
sys_ev.type = LCUI_MOUSEDOWN;
61-
sys_ev.button.x = ev->xbutton.x;
62-
sys_ev.button.y = ev->xbutton.y;
63-
sys_ev.button.button = ev->xbutton.button;
62+
63+
if (ev->xbutton.button == Button4) {
64+
sys_ev.type = LCUI_MOUSEWHEEL;
65+
sys_ev.wheel.x = ev->xbutton.x;
66+
sys_ev.wheel.y = ev->xbutton.y;
67+
sys_ev.wheel.delta = MOUSE_WHEEL_DELTA;
68+
} else if (ev->xbutton.button == Button5) {
69+
sys_ev.type = LCUI_MOUSEWHEEL;
70+
sys_ev.wheel.x = ev->xbutton.x;
71+
sys_ev.wheel.y = ev->xbutton.y;
72+
sys_ev.wheel.delta = -MOUSE_WHEEL_DELTA;
73+
} else {
74+
sys_ev.type = LCUI_MOUSEDOWN;
75+
sys_ev.button.x = ev->xbutton.x;
76+
sys_ev.button.y = ev->xbutton.y;
77+
sys_ev.button.button = ev->xbutton.button;
78+
}
6479
LCUI_TriggerEvent(&sys_ev, NULL);
6580
LCUI_DestroyEvent(&sys_ev);
6681
}

0 commit comments

Comments
 (0)