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(); | ||||
| 
 | ||||
|         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) { | ||||
|                 notification *n = notification_create(); | ||||
|                 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
 | ||||
|         } | ||||
| 
 | ||||
|         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); | ||||
|         g_main_loop_run(mainloop); | ||||
|         g_main_loop_unref(mainloop); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Nikos Tsipinakis
						Nikos Tsipinakis