diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/internal.c | 11 | ||||
-rw-r--r-- | src/mac.m | 10 | ||||
-rw-r--r-- | src/win.c | 10 | ||||
-rw-r--r-- | src/x11.c | 14 |
4 files changed, 18 insertions, 27 deletions
diff --git a/src/internal.c b/src/internal.c index 2da5e9e..c607fa7 100644 --- a/src/internal.c +++ b/src/internal.c @@ -47,11 +47,14 @@ puglSetBlob(PuglBlob* const dest, const void* const data, const size_t len) void puglSetString(char** dest, const char* string) { - if (*dest != string) { - const size_t len = strlen(string); + const size_t len = string ? strlen(string) : 0U; - *dest = (char*)realloc(*dest, len + 1); - strncpy(*dest, string, len + 1); + if (!len) { + free(*dest); + *dest = NULL; + } else { + *dest = (char*)realloc(*dest, len + 1U); + strncpy(*dest, string, len + 1U); } } @@ -1298,12 +1298,10 @@ puglRealize(PuglView* view) ((NSWindow*)window).delegate = [[PuglWindowDelegate alloc] initWithPuglWindow:window]; - updateSizeHints(view); - + // Set basic window hints and attributes puglSetFrame(view, initialFrame); - if (view->transientParent) { - puglSetTransientParent(view, view->transientParent); - } + puglSetTransientParent(view, view->transientParent); + updateSizeHints(view); [window setContentView:impl->wrapperView]; [view->world->impl->app activateIgnoringOtherApps:YES]; @@ -1847,7 +1845,7 @@ puglSetTransientParent(PuglView* view, PuglNativeView parent) view->transientParent = parent; - if (view->impl->window) { + if (parent && view->impl->window) { NSWindow* parentWindow = [(NSView*)parent window]; if (parentWindow) { [parentWindow addChildWindow:view->impl->window ordered:NSWindowAbove]; @@ -279,13 +279,9 @@ puglRealize(PuglView* view) return st; } - if (view->title) { - puglSetWindowTitle(view, view->title); - } - - if (view->transientParent) { - puglSetTransientParent(view, view->transientParent); - } + // Set basic window hints and attributes + puglSetWindowTitle(view, view->title ? view->title : ""); + puglSetTransientParent(view, view->transientParent); view->impl->scaleFactor = puglWinGetViewScaleFactor(view); view->impl->cursor = LoadCursor(NULL, IDC_ARROW); @@ -619,18 +619,12 @@ puglRealize(PuglView* const view) } #endif - updateSizeHints(view); - + // Set basic window hints and attributes XClassHint classHint = {world->className, world->className}; XSetClassHint(display, impl->win, &classHint); - - if (view->title) { - puglSetWindowTitle(view, view->title); - } - - if (view->transientParent) { - puglSetTransientParent(view, view->transientParent); - } + puglSetWindowTitle(view, view->title ? view->title : ""); + puglSetTransientParent(view, view->transientParent); + updateSizeHints(view); // Set PID and hostname so the window manager can access our process char hostname[256] = {0}; |