From 6c964d703c87a5a15b069c7803eb3d31e07ff504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 4 Aug 2012 19:12:31 +0200 Subject: [PATCH] EglContext: Handle window resizing. --- src/Contexts/EglContext.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Contexts/EglContext.cpp b/src/Contexts/EglContext.cpp index 368f1c2d0..8aea12c2b 100644 --- a/src/Contexts/EglContext.cpp +++ b/src/Contexts/EglContext.cpp @@ -18,7 +18,7 @@ #define None 0L // redef Xlib nonsense /* Mask for X events */ -#define INPUT_MASK KeyPressMask|KeyReleaseMask|ButtonPressMask|ButtonReleaseMask +#define INPUT_MASK KeyPressMask|KeyReleaseMask|ButtonPressMask|ButtonReleaseMask|StructureNotifyMask using namespace std; @@ -140,6 +140,16 @@ int EglContext::exec() { XEvent event; while(XCheckWindowEvent(xDisplay, xWindow, INPUT_MASK, &event)) { switch(event.type) { + /* Window resizing */ + case ConfigureNotify: { + Math::Vector2 size(event.xconfigure.width, event.xconfigure.height); + if(size != viewportSize) { + viewportSize = size; + viewportEvent(size); + } + } break; + + /* Key/mouse events */ case KeyPress: keyPressEvent(static_cast(XLookupKeysym(&event.xkey, 0)), {event.xkey.x, event.xkey.y}); break;