diff --git a/src/modules/event/Event.cpp b/src/modules/event/Event.cpp index 0ba1c1e48..61f7c972d 100644 --- a/src/modules/event/Event.cpp +++ b/src/modules/event/Event.cpp @@ -99,6 +99,16 @@ namespace event return true; } + void Event::clear() + { + Lock lock(mutex); + while (!queue.empty()) + { + queue.back()->release(); + queue.pop(); + } + } + bool Event::getConstant(const char * in, love::mouse::Mouse::Button & out) { return buttons.find(in, out); diff --git a/src/modules/event/Event.h b/src/modules/event/Event.h index 7a738195b..feff4b509 100644 --- a/src/modules/event/Event.h +++ b/src/modules/event/Event.h @@ -58,6 +58,7 @@ namespace event void push(Message *msg); bool poll(Message *&msg); + virtual void clear(); virtual void pump() = 0; diff --git a/src/modules/event/sdl/Event.cpp b/src/modules/event/sdl/Event.cpp index 4c4472689..d92eafa2e 100644 --- a/src/modules/event/sdl/Event.cpp +++ b/src/modules/event/sdl/Event.cpp @@ -77,11 +77,7 @@ namespace sdl // Do nothing with 'e' ... } - while (!queue.empty()) - { - queue.back()->release(); - queue.pop(); - } + love::event::Event::clear(); } Message *Event::convert(SDL_Event & e)