diff --git a/source/Platform/Unix/X11EventQueue.cpp b/source/Platform/Unix/X11EventQueue.cpp index d71faaa..0e81cbe 100644 --- a/source/Platform/Unix/X11EventQueue.cpp +++ b/source/Platform/Unix/X11EventQueue.cpp @@ -1,10 +1,50 @@ +#include #include "X11EventQueue.h" +#include "X11SharedDisplay.h" namespace sp { bool X11EventQueue::poll(Event& event) { + XEvent xevent; + int num_events; + ::Display* disp; + + disp = XGetDisplay(); + if (disp == NULL) { + return false; + } + + num_events = XEventsQueued(disp, QueuedAlready); + + for(int i = 0; i < num_events; i++) { + + XNextEvent(disp, &xevent); + + switch(xevent.type) { + case ResizeRequest: + Log::info("X11: Resize event"); + break; + case KeyPress: + case KeyRelease: + Log::info("X11: KeyEvent"); + break; + case ButtonPress: + case ButtonRelease: + Log::info("X11: MouseButtonEvent"); + break; + case MotionNotify: + // This generates alot of events :) + //Log::info("X11: MouseMotionEvent"); + break; + default: + Log::info("Unknown event"); + } + } + + XReleaseDisplay(); + return false; }