diff options
Diffstat (limited to 'backends/events/default')
| -rw-r--r-- | backends/events/default/default-events.cpp | 26 | ||||
| -rw-r--r-- | backends/events/default/default-events.h | 1 |
2 files changed, 27 insertions, 0 deletions
diff --git a/backends/events/default/default-events.cpp b/backends/events/default/default-events.cpp index c7c39da069..667914b023 100644 --- a/backends/events/default/default-events.cpp +++ b/backends/events/default/default-events.cpp @@ -254,4 +254,30 @@ void DefaultEventManager::pushEvent(const Common::Event &event) { _artificialEventSource.addEvent(event); } +void DefaultEventManager::purgeMouseEvents() { + _dispatcher.dispatch(); + + Common::Queue<Common::Event> filteredQueue; + while (!_eventQueue.empty()) { + Common::Event event = _eventQueue.pop(); + switch (event.type) { + case Common::EVENT_MOUSEMOVE: + case Common::EVENT_LBUTTONDOWN: + case Common::EVENT_LBUTTONUP: + case Common::EVENT_RBUTTONDOWN: + case Common::EVENT_RBUTTONUP: + case Common::EVENT_WHEELUP: + case Common::EVENT_WHEELDOWN: + case Common::EVENT_MBUTTONDOWN: + case Common::EVENT_MBUTTONUP: + // do nothing + break; + default: + filteredQueue.push(event); + break; + } + } + _eventQueue = filteredQueue; +} + #endif // !defined(DISABLE_DEFAULT_EVENTMANAGER) diff --git a/backends/events/default/default-events.h b/backends/events/default/default-events.h index f378fb9ff0..38406c25aa 100644 --- a/backends/events/default/default-events.h +++ b/backends/events/default/default-events.h @@ -80,6 +80,7 @@ public: virtual void init(); virtual bool pollEvent(Common::Event &event); virtual void pushEvent(const Common::Event &event); + virtual void purgeMouseEvents() override; virtual Common::Point getMousePos() const { return _mousePos; } virtual int getButtonState() const { return _buttonState; } |
