diff --git a/i3-config-wizard/main.c b/i3-config-wizard/main.c index 013d1053..0c8c705a 100644 --- a/i3-config-wizard/main.c +++ b/i3-config-wizard/main.c @@ -853,6 +853,7 @@ int main(int argc, char *argv[]) { /* Init startup notification. */ SnDisplay *sndisplay = sn_xcb_display_new(conn, NULL, NULL); SnLauncheeContext *sncontext = sn_launchee_context_new_from_environment(sndisplay, screen); + sn_display_unref(sndisplay); root_screen = xcb_aux_get_screen(conn, screen); root = root_screen->root; @@ -886,7 +887,9 @@ int main(int argc, char *argv[]) { 0, /* back pixel: black */ XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS}); - sn_launchee_context_setup_window(sncontext, win); + if (sncontext) { + sn_launchee_context_setup_window(sncontext, win); + } /* Map the window (make it visible) */ xcb_map_window(conn, win); @@ -949,9 +952,10 @@ int main(int argc, char *argv[]) { } /* Startup complete. */ - sn_launchee_context_complete(sncontext); - sn_launchee_context_unref(sncontext); - sn_display_unref(sndisplay); + if (sncontext) { + sn_launchee_context_complete(sncontext); + sn_launchee_context_unref(sncontext); + } xcb_flush(conn); diff --git a/i3-nagbar/main.c b/i3-nagbar/main.c index 1d1fcc51..1d600c02 100644 --- a/i3-nagbar/main.c +++ b/i3-nagbar/main.c @@ -421,6 +421,7 @@ int main(int argc, char *argv[]) { /* Init startup notification. */ SnDisplay *sndisplay = sn_xcb_display_new(conn, NULL, NULL); SnLauncheeContext *sncontext = sn_launchee_context_new_from_environment(sndisplay, screens); + sn_display_unref(sndisplay); root_screen = xcb_aux_get_screen(conn, screens); root = root_screen->root; @@ -491,7 +492,9 @@ int main(int argc, char *argv[]) { XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE, cursor}); - sn_launchee_context_setup_window(sncontext, win); + if (sncontext) { + sn_launchee_context_setup_window(sncontext, win); + } /* Map the window (make it visible) */ xcb_map_window(conn, win); @@ -553,9 +556,10 @@ int main(int argc, char *argv[]) { draw_util_surface_init(conn, &bar, win, get_visualtype(root_screen), win_pos.width, win_pos.height); /* Startup complete. */ - sn_launchee_context_complete(sncontext); - sn_launchee_context_unref(sncontext); - sn_display_unref(sndisplay); + if (sncontext) { + sn_launchee_context_complete(sncontext); + sn_launchee_context_unref(sncontext); + } /* Grab the keyboard to get all input */ xcb_flush(conn);