From: Orestis Floros Date: Sun, 23 Sep 2018 14:02:21 +0000 (+0300) Subject: i3-nagbar & i3-config-wizard: check sncontext != NULL X-Git-Tag: 4.16~30^2 X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=commitdiff_plain;h=d080f58299ebed9300ca6f79d30c955d3e928421;hp=ac88d06632b6235e51d89806b7889ba5bfb9eb78 i3-nagbar & i3-config-wizard: check sncontext != NULL From https://github.com/freedesktop/startup-notification/blob/07237ff25d6171e1b548118442ddba4259a53ba5/libsn/sn-common.c#L87-L171 it appears that SnDisplay can't be NULL, so I skipped the check. Fixes #3419 --- 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);