mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2026-06-15 21:31:12 +00:00
Fix consuming the remaining input events when mapping the gamepad. See GitHub issue 4 for details.
This commit is contained in:
@@ -306,24 +306,22 @@ public class GamepadConfigFrame extends JFrame {
|
|||||||
* Consumes any events left in the queue after the mapping has been made
|
* Consumes any events left in the queue after the mapping has been made
|
||||||
*/
|
*/
|
||||||
private void consumeEvents(final Gamepad pad) {
|
private void consumeEvents(final Gamepad pad) {
|
||||||
// start a new thread to go through all of the remaining events
|
EventQueue queue = pad.getEvents();
|
||||||
Thread consumeEvents = new Thread(new Runnable() {
|
Event event = new Event();
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
if (pad.poll()) {
|
|
||||||
EventQueue queue = pad.getEvents();
|
|
||||||
Event event = new Event();
|
|
||||||
|
|
||||||
while (queue.getNextEvent(event)) {
|
for (int i = 0; i < 5; i++) {
|
||||||
if (!pad.poll()) {
|
if (!pad.poll()) {
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
consumeEvents.setName("Consume Events Thread");
|
// Drop all events currently in the queue
|
||||||
consumeEvents.start();
|
while (queue.getNextEvent(event) && pad.poll());
|
||||||
|
|
||||||
|
// Give the queue a bit of time to fill again
|
||||||
|
try {
|
||||||
|
Thread.sleep(50);
|
||||||
|
} catch (InterruptedException e) {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user