Fix segfault with startup_notification
As it currently stands notification_init uses xctx.color to initialize the notification colors which means that it depends on x11 having been previously initialized and crashes otherwise. This bug was introduced in 04b327f where draw_setup() was after the startup notification was created. As a temporary fix the notification creation was moved under draw_setup but for a long term solution we should look into removing these xctx dependencies.
This commit is contained in:
parent
1fe80a5db8
commit
5761ef1c09
24
src/dunst.c
24
src/dunst.c
@ -147,6 +147,18 @@ int dunst_main(int argc, char *argv[])
|
|||||||
|
|
||||||
int owner_id = initdbus();
|
int owner_id = initdbus();
|
||||||
|
|
||||||
|
mainloop = g_main_loop_new(NULL, FALSE);
|
||||||
|
|
||||||
|
draw_setup();
|
||||||
|
|
||||||
|
guint pause_src = g_unix_signal_add(SIGUSR1, pause_signal, NULL);
|
||||||
|
guint unpause_src = g_unix_signal_add(SIGUSR2, unpause_signal, NULL);
|
||||||
|
|
||||||
|
/* register SIGINT/SIGTERM handler for
|
||||||
|
* graceful termination */
|
||||||
|
guint term_src = g_unix_signal_add(SIGTERM, quit_signal, NULL);
|
||||||
|
guint int_src = g_unix_signal_add(SIGINT, quit_signal, NULL);
|
||||||
|
|
||||||
if (settings.startup_notification) {
|
if (settings.startup_notification) {
|
||||||
notification *n = notification_create();
|
notification *n = notification_create();
|
||||||
n->id = 0;
|
n->id = 0;
|
||||||
@ -162,18 +174,6 @@ int dunst_main(int argc, char *argv[])
|
|||||||
// we do not call wakeup now, wake_up does not work here yet
|
// we do not call wakeup now, wake_up does not work here yet
|
||||||
}
|
}
|
||||||
|
|
||||||
mainloop = g_main_loop_new(NULL, FALSE);
|
|
||||||
|
|
||||||
draw_setup();
|
|
||||||
|
|
||||||
guint pause_src = g_unix_signal_add(SIGUSR1, pause_signal, NULL);
|
|
||||||
guint unpause_src = g_unix_signal_add(SIGUSR2, unpause_signal, NULL);
|
|
||||||
|
|
||||||
/* register SIGINT/SIGTERM handler for
|
|
||||||
* graceful termination */
|
|
||||||
guint term_src = g_unix_signal_add(SIGTERM, quit_signal, NULL);
|
|
||||||
guint int_src = g_unix_signal_add(SIGINT, quit_signal, NULL);
|
|
||||||
|
|
||||||
run(NULL);
|
run(NULL);
|
||||||
g_main_loop_run(mainloop);
|
g_main_loop_run(mainloop);
|
||||||
g_main_loop_unref(mainloop);
|
g_main_loop_unref(mainloop);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user