X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=glws_glx.cpp;h=95cdab078951eef107b8936d8a56fa34f3df58b4;hb=ee2073911c1f76715427ef0c031bea7b8483ea97;hp=bba108a43a5d64c175368cc0cacfd1068c5d04f9;hpb=3dabe543b983aaa89ff3a85f790d6e1d60d93732;p=apitrace diff --git a/glws_glx.cpp b/glws_glx.cpp index bba108a..95cdab0 100644 --- a/glws_glx.cpp +++ b/glws_glx.cpp @@ -26,10 +26,10 @@ #include #include -#include "glimports.hpp" #include "glws.hpp" #include +#include #include @@ -138,9 +138,6 @@ public: display, window, name, name, None, (char **)NULL, 0, &sizehints); - XMapWindow(display, window); - - waitForEvent(window, Expose); glXWaitX(); } @@ -161,11 +158,30 @@ public: XResizeWindow(display, window, w, h); + // Tell the window manager to respect the requested size + XSizeHints *size_hints; + size_hints = XAllocSizeHints(); + size_hints->max_width = size_hints->min_width = w; + size_hints->max_height = size_hints->min_height = h; + size_hints->flags = PMinSize | PMaxSize; + XSetWMNormalHints(display, window, size_hints); + XFree(size_hints); + waitForEvent(window, ConfigureNotify); glXWaitX(); } + void show(void) { + if (!visible) { + XMapWindow(display, window); + + waitForEvent(window, Expose); + + Drawable::show(); + } + } + void swapBuffers(void) { glXSwapBuffers(display, window); }