Fixed crash at postsave function if it had widgets manipulations

pull/36/head
Ivan Dmitrievich Yartsev 11 months ago
parent 3d986cc6eb
commit 0bbe2aa134

@ -1,4 +1,5 @@
#include "libublsettingsui-gtk3.h" #include "libublsettingsui-gtk3.h"
#include "ubl-window-settings.h"
static char *__yon_config_mode=NULL; static char *__yon_config_mode=NULL;
@ -166,6 +167,17 @@ template_debug_window *template_debugger_window_new(){
return window; return window;
} }
struct save_return {
void *save_success_argument;
config_str file_return;
int file_save;
};
gboolean _yon_postsave_function_start(struct save_return *data){
save_success_function(data->save_success_argument,data->file_return,data->file_save);
return G_SOURCE_REMOVE;
}
void _yon_saving_threaded(char *final_command){ void _yon_saving_threaded(char *final_command){
FILE *file = popen(final_command,"r"); FILE *file = popen(final_command,"r");
int file_save; int file_save;
@ -174,7 +186,11 @@ void _yon_saving_threaded(char *final_command){
file_return = yon_char_parsed_append(file_return,&file_save,final_command); file_return = yon_char_parsed_append(file_return,&file_save,final_command);
if (save_success_function) if (save_success_function)
{ {
save_success_function(save_success_argument,file_return,file_save); struct save_return *data = malloc(sizeof(struct save_return));
data->save_success_argument = save_success_argument;
data->file_return = file_return;
data->file_save = file_save;
gdk_threads_add_idle((GSourceFunc)_yon_postsave_function_start,data);
} }
} }

@ -98,6 +98,7 @@
#define SAVE_MODE_HDD_HOME_LABEL _("HDD sandbox with profile saving") #define SAVE_MODE_HDD_HOME_LABEL _("HDD sandbox with profile saving")
#define CUSTOM_CONFIG_CREATION_ERROR_LABEL _("New configuration file creation failed") #define CUSTOM_CONFIG_CREATION_ERROR_LABEL _("New configuration file creation failed")
#define ROOT_CHECK_LABEL _("Upgrade to root") #define ROOT_CHECK_LABEL _("Upgrade to root")
#define SETTINGS_TITLE_LABEL _("Settings")
#endif #endif
#define dull_parameter_get_command "ubconfig --source global get users PARAMETER" #define dull_parameter_get_command "ubconfig --source global get users PARAMETER"

Loading…
Cancel
Save