diff options
-rw-r--r-- | otherlibs/graph/events.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/otherlibs/graph/events.c b/otherlibs/graph/events.c index 17a76845f..a5bf169e0 100644 --- a/otherlibs/graph/events.c +++ b/otherlibs/graph/events.c @@ -77,7 +77,8 @@ value gr_wait_event(value eventlist) mouse_x = win_x; mouse_y = win_y; } - button = modifiers & Button1Mask; + button = modifiers & (Button1Mask | Button2Mask | Button3Mask + | Button4Mask | Button5Mask); if (!QueueIsEmpty) key = gr_queue[gr_head]; } else { if ((mask & KeyPressMask) && !QueueIsEmpty) { @@ -99,12 +100,14 @@ value gr_wait_event(value eventlist) case ButtonRelease: mouse_x = event.xbutton.x; mouse_y = event.xbutton.y; - button = event.type == ButtonPress; + button = (event.type == ButtonPress); break; case MotionNotify: mouse_x = event.xmotion.x; mouse_y = event.xmotion.y; - button = event.xmotion.state & Button1Mask; + button = event.xmotion.state & + (Button1Mask | Button2Mask | Button3Mask + | Button4Mask | Button5Mask); break; case KeyPress: gr_handle_simple_event(&event); |