From 22c11f6cb8d46742af1bf2d082c69326040d32c7 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 16 Jul 2024 16:08:21 +0600 Subject: [PATCH] Fixed crash when can't find config path --- source/libublsettings-gtk3.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/source/libublsettings-gtk3.c b/source/libublsettings-gtk3.c index c1ba2bf..ab5462a 100644 --- a/source/libublsettings-gtk3.c +++ b/source/libublsettings-gtk3.c @@ -251,25 +251,29 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi */ void yon_on_configured_window_destroy(GtkWidget* self,GdkEvent* event){ check_window_config_setup{ - yon_get_is_fullscreen(); - yon_window_config_save(); + if (__yon_window_config_path){ + yon_get_is_fullscreen(); + yon_window_config_save(); + } } gtk_main_quit(); } void __yon_window_config_on_resize(){ - int max=0; - max=gtk_window_is_maximized(__yon_window_config_target_window); - if(max==0){ - gtk_window_get_size(__yon_window_config_target_window,&__yon_main_window_config.width,&__yon_main_window_config.height); - gtk_window_get_position(__yon_window_config_target_window,&__yon_main_window_config.x,&__yon_main_window_config.y); + if (__yon_window_config_path){ + int max=0; + max=gtk_window_is_maximized(__yon_window_config_target_window); + if(max==0){ + gtk_window_get_size(__yon_window_config_target_window,&__yon_main_window_config.width,&__yon_main_window_config.height); + gtk_window_get_position(__yon_window_config_target_window,&__yon_main_window_config.x,&__yon_main_window_config.y); + } } } void yon_window_config_setup(GtkWindow *window){ - __yon_window_config_target_window = window; - g_signal_connect(G_OBJECT(window),"delete-event",G_CALLBACK(yon_on_configured_window_destroy),NULL); - g_signal_connect(G_OBJECT(window),"check-resize"/*"configure-event"*/,G_CALLBACK(__yon_window_config_on_resize),NULL); + __yon_window_config_target_window = window; + g_signal_connect(G_OBJECT(window),"delete-event",G_CALLBACK(yon_on_configured_window_destroy),NULL); + g_signal_connect(G_OBJECT(window),"check-resize"/*"configure-event"*/,G_CALLBACK(__yon_window_config_on_resize),NULL); } void _yon_maximize(void *data){ @@ -278,6 +282,7 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi } int yon_window_config_load(char *path){ + if (!access(path,0)){ __yon_window_config_file = g_key_file_new(); __yon_window_config_path=yon_char_new(path); if (!g_key_file_load_from_file(__yon_window_config_file,__yon_window_config_path,G_KEY_FILE_NONE,NULL)){ @@ -329,6 +334,9 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi pthread_t tid; pthread_create(&tid,NULL,(void *)_yon_maximize,NULL); return 1; + } else { + return 0; + } } void yon_window_config_apply(){ -- 2.35.1