1
0
Fork 0
Commit graph

10 commits

Author SHA1 Message Date
b8ff8a1e46 Platform/Unix/X11EventQueue.cpp: pass ButtonPress/ButtonRelease/MotionNotify events to X11Mouse 2020-10-16 19:39:27 +02:00
cdea7e238c Platform/Unix/X11EventQueue: Fix bug where messeges where not flushed to the event queue.
XEventsQueued(disp, QueuedAlready) only returns the number of events currently in the queue and
does not flush new events. So this must happen elsewhere and if it does not we
will never see any events. i noticed this bug when removing the call to glXSwapBuffers().

Fix this by using XPending() instead as this flushes new events
if the queue is empty before returning the length.

see https://tronche.com/gui/x/xlib/event-handling/XEventsQueued.html
and https://tronche.com/gui/x/xlib/event-handling/XPending.html
2020-10-16 19:39:27 +02:00
573d546961 Platform/Unix/X11EventQueue: send KeyPress and KeyRelease events to X11Keyboard::handleMessage() 2020-10-16 19:39:27 +02:00
c020b5dcf6 Platform/Unix/X11EventQueue.cpp: Only process one event per call to poll(). Confirming to Platform API. 2020-10-16 19:39:27 +02:00
b21c62d98c Platform/Unix/X11EventQueue: get and release display handle in constructor/destructor instead of every call to poll()
Should be fine as the display should never change during runtime.
2020-10-16 19:39:27 +02:00
053511453f Platform/Unix/X11EventQueue: redirect unkown events to X11WindowEventHandler. 2020-10-16 19:39:27 +02:00
b58a5fe9dd source/Platform/Unix/X11EventQueue.cpp: post quit event on "WM_DELETE_WINDOW". 2020-10-16 19:39:27 +02:00
34b78a7a4d source/Platform/Unix/X11EventQueue.cpp: log "WM_DESTROY_WINDOW" message. 2020-10-16 19:39:27 +02:00
fa97552e23 source/Platform/Unix/UnixEventQueue.cpp: implement a poll method (only log events for now) 2020-10-16 19:39:27 +02:00
38d333862a source/Platform/Unix: stub implementation 2020-10-16 19:39:26 +02:00