Do not queue up mouse wheel scroll events while others are still processing
This commit is contained in:
parent
5e40c33eda
commit
c2323f4397
@ -276,6 +276,15 @@ static bool ProcessXKeyReleaseEvent(XEvent * x_event, Jtk_Event * event)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Bool MatchButtonPress(Display * display, XEvent * event, XPointer arg)
|
||||||
|
{
|
||||||
|
XEvent * match_event = (XEvent *)arg;
|
||||||
|
return (event->type == match_event->type) &&
|
||||||
|
(event->xbutton.window == match_event->xbutton.window) &&
|
||||||
|
(event->xbutton.state == match_event->xbutton.state) &&
|
||||||
|
(event->xbutton.button == match_event->xbutton.button);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process an X button press event.
|
* Process an X button press event.
|
||||||
*/
|
*/
|
||||||
@ -283,6 +292,15 @@ static bool ProcessXButtonPressEvent(XEvent * x_event, Jtk_Event * event)
|
|||||||
{
|
{
|
||||||
event->type = JTK_EVENT_BUTTON_PRESS;
|
event->type = JTK_EVENT_BUTTON_PRESS;
|
||||||
event->button.button = x_event->xbutton.button;
|
event->button.button = x_event->xbutton.button;
|
||||||
|
/* If this is a mouse wheel scroll event, remove any following scroll
|
||||||
|
* events. */
|
||||||
|
if ((event->button.button == 4) || (event->button.button == 5))
|
||||||
|
{
|
||||||
|
XEvent remove_event;
|
||||||
|
while (XCheckIfEvent(g_display, &remove_event, MatchButtonPress, (XPointer)x_event) == True)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user