diff options
-rw-r--r-- | src/ft_click_close.c | 5 | ||||
-rw-r--r-- | src/ft_exit.c | 13 |
2 files changed, 10 insertions, 8 deletions
diff --git a/src/ft_click_close.c b/src/ft_click_close.c index 113c241..814392a 100644 --- a/src/ft_click_close.c +++ b/src/ft_click_close.c @@ -19,7 +19,6 @@ int ft_click_close(int keycode, t_cub *clist) { (void)keycode; - (void)clist; - exit(0); - return (0); + clist->clickclose = 1; + return (ft_exit(0, clist)); } diff --git a/src/ft_exit.c b/src/ft_exit.c index 8d1b3ba..ea43576 100644 --- a/src/ft_exit.c +++ b/src/ft_exit.c @@ -57,7 +57,7 @@ static void i = -1; while (clist->wlist.inited && ++i < FT_TOTAL_SFX) { - if (FT_OS == 2) + if (FT_OS == 2 && clist->clickclose == 0) { pthread_mutex_destroy(&clist->sfx[i].mutex); system(FT_SND_TERM_CMD); @@ -80,10 +80,13 @@ int mlx_destroy_window(clist->wlist.wlx, clist->wlist.winptr); } ft_cancel_threads(clist); - ft_del_map(&clist->mlist); - ft_del_sprites_lists(clist); - ft_del_sfx_cmd(clist); - ft_del_last_remains(clist); + if (clist->clickclose == 0) + { + ft_del_map(&clist->mlist); + ft_del_sprites_lists(clist); + ft_del_sfx_cmd(clist); + ft_del_last_remains(clist); + } ft_printf("Exiting program\n"); exit(exit_code); return (0); |