diff options
author | David Robillard <d@drobilla.net> | 2012-04-29 03:27:05 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-04-29 03:27:05 +0000 |
commit | 94b9e452ebd9438a917b825d8d01137ddaa9e398 (patch) | |
tree | ace1acc489c42311d94f91346ff289127ed339b6 /pugl/pugl_x11.c | |
parent | 4e6368d019e2543e6bf792f182486732d6f5a3f5 (diff) | |
download | pugl-94b9e452ebd9438a917b825d8d01137ddaa9e398.tar.gz pugl-94b9e452ebd9438a917b825d8d01137ddaa9e398.tar.bz2 pugl-94b9e452ebd9438a917b825d8d01137ddaa9e398.zip |
Implement resizable and non-resizable windows.
Diffstat (limited to 'pugl/pugl_x11.c')
-rw-r--r-- | pugl/pugl_x11.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/pugl/pugl_x11.c b/pugl/pugl_x11.c index 5844f2d..f85e18b 100644 --- a/pugl/pugl_x11.c +++ b/pugl/pugl_x11.c @@ -62,7 +62,11 @@ static int attrListDbl[] = { }; PuglWindow* -puglCreate(PuglNativeWindow parent, const char* title, int width, int height) +puglCreate(PuglNativeWindow parent, + const char* title, + int width, + int height, + bool resizable) { PuglWindow* win = (PuglWindow*)calloc(1, sizeof(PuglWindow)); @@ -112,6 +116,17 @@ puglCreate(PuglNativeWindow parent, const char* title, int width, int height) 0, 0, win->width, win->height, 0, vi->depth, InputOutput, vi->visual, CWBorderPixel | CWColormap | CWEventMask, &attr); + XSizeHints sizeHints; + memset(&sizeHints, 0, sizeof(sizeHints)); + if (!resizable) { + sizeHints.flags = PMinSize|PMaxSize; + sizeHints.min_width = width; + sizeHints.min_height = height; + sizeHints.max_width = width; + sizeHints.max_height = height; + XSetNormalHints(impl->display, impl->win, &sizeHints); + } + if (title) { XStoreName(impl->display, impl->win, title); } @@ -187,6 +202,8 @@ puglProcessEvents(PuglWindow* win) event.xconfigure.width, event.xconfigure.height); } + win->width = event.xconfigure.width; + win->height = event.xconfigure.height; } break; case MotionNotify: |