From 3a817b47da27087f441e8bb6d7dcd7ba9d9b51a3 Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 24 Aug 2024 19:16:09 +0200 Subject: osd/input_common: increase event queue size, input_rawinput/win32: empty event queue on resets, input_raw: set RIDEV_INPUTSINK flag because of missed keyup events, causing stuck inputs (MT8789) --- src/osd/modules/input/input_common.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/osd/modules/input/input_common.h') diff --git a/src/osd/modules/input/input_common.h b/src/osd/modules/input/input_common.h index 28e53fb0ccb..73ddd2bf936 100644 --- a/src/osd/modules/input/input_common.h +++ b/src/osd/modules/input/input_common.h @@ -91,7 +91,7 @@ template class event_based_device : public device_info { private: - static inline constexpr unsigned DEFAULT_EVENT_QUEUE_SIZE = 20; + static inline constexpr unsigned DEFAULT_EVENT_QUEUE_SIZE = 64; std::queue m_event_queue; @@ -117,7 +117,7 @@ public: m_event_queue.pop(); } - void virtual poll(bool relative_reset) override + virtual void poll(bool relative_reset) override { std::lock_guard scope_lock(m_device_lock); @@ -128,6 +128,12 @@ public: m_event_queue.pop(); } } + + virtual void reset() override + { + std::lock_guard scope_lock(m_device_lock); + std::queue().swap(m_event_queue); + } }; -- cgit v1.2.3-70-g09d2