aboutsummaryrefslogtreecommitdiffstats
path: root/pugl
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-10-20 23:08:00 +0200
committerDavid Robillard <d@drobilla.net>2020-10-20 23:08:26 +0200
commita8d2aa2761dcbaf491da09a375e246758b1137c4 (patch)
tree48609b19e42001ec6bfa9be9d6c6d0e5034c1a5b /pugl
parent83c4baa25e24920cc6da2e1f87118bc47ed35851 (diff)
downloadpugl-a8d2aa2761dcbaf491da09a375e246758b1137c4.tar.gz
pugl-a8d2aa2761dcbaf491da09a375e246758b1137c4.tar.bz2
pugl-a8d2aa2761dcbaf491da09a375e246758b1137c4.zip
Fix puglSetFrame() error handling on X11
Diffstat (limited to 'pugl')
-rw-r--r--pugl/detail/x11.c17
-rw-r--r--pugl/pugl.h3
2 files changed, 13 insertions, 7 deletions
diff --git a/pugl/detail/x11.c b/pugl/detail/x11.c
index a41de3e..6958785 100644
--- a/pugl/detail/x11.c
+++ b/pugl/detail/x11.c
@@ -1190,15 +1190,18 @@ puglSetWindowTitle(PuglView* view, const char* title)
PuglStatus
puglSetFrame(PuglView* view, const PuglRect frame)
{
- view->frame = frame;
-
- if (view->impl->win &&
- !XMoveResizeWindow(view->world->impl->display, view->impl->win,
- (int)frame.x, (int)frame.y,
- (unsigned)frame.width, (unsigned)frame.height)) {
- return PUGL_UNKNOWN_ERROR;
+ if (view->impl->win) {
+ if (!XMoveResizeWindow(view->world->impl->display,
+ view->impl->win,
+ (int)frame.x,
+ (int)frame.y,
+ (unsigned)frame.width,
+ (unsigned)frame.height)) {
+ return PUGL_UNKNOWN_ERROR;
+ }
}
+ view->frame = frame;
return PUGL_SUCCESS;
}
diff --git a/pugl/pugl.h b/pugl/pugl.h
index cd931ed..a665721 100644
--- a/pugl/pugl.h
+++ b/pugl/pugl.h
@@ -969,6 +969,9 @@ puglGetFrame(const PuglView* view);
Set the current position and size of the view.
The position is in screen coordinates with an upper left origin.
+
+ @return #PUGL_UNKNOWN_ERROR on failure, in which case the view frame is
+ unchanged.
*/
PUGL_API PuglStatus
puglSetFrame(PuglView* view, PuglRect frame);