@@ -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+
5658static 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