From 09e923d965a86a944dad7d77b336721386f6bf63 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Fri, 10 Feb 2017 18:39:27 +0100 Subject: Return a list of events form native window instead of one event at a time. --- plugingui/eventhandler.cc | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'plugingui/eventhandler.cc') diff --git a/plugingui/eventhandler.cc b/plugingui/eventhandler.cc index a5249a6..9643d3f 100644 --- a/plugingui/eventhandler.cc +++ b/plugingui/eventhandler.cc @@ -40,23 +40,38 @@ EventHandler::EventHandler(NativeWindow& nativeWindow, Window& window) bool EventHandler::hasEvent() { - return nativeWindow.hasEvent(); + return !events.empty(); } std::shared_ptr EventHandler::getNextEvent() { - return nativeWindow.getNextEvent(); + if(events.empty()) + { + return nullptr; + } + + auto event = events.front(); + events.pop(); + return event; } std::shared_ptr EventHandler::peekNextEvent() { - return nativeWindow.peekNextEvent(); + if(events.empty()) + { + return nullptr; + } + + auto event = events.front(); + return event; } void EventHandler::processEvents() { Painter p(window); // Make sure we only redraw buffer one time. + events = nativeWindow.getEvents(); + while(hasEvent()) { auto event = getNextEvent(); -- cgit v1.2.3