|
|
|
|
@ -854,8 +854,33 @@ void config_init(){
|
|
|
|
|
main_config.exit_accepted=0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_configuration_mode_switch(GtkWidget *self);
|
|
|
|
|
void on_configuration_mode_switch(GtkWidget *self){
|
|
|
|
|
void on_root_get_root(char *argline);
|
|
|
|
|
void on_root_get_root(char *argline){
|
|
|
|
|
yon_launch(argline);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_configuration_mode_switch(GtkWidget *self,main_window *widgets);
|
|
|
|
|
void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){
|
|
|
|
|
if (getuid()) {
|
|
|
|
|
if (main_config.configure_mode==1){
|
|
|
|
|
char *argline = LocaleName;
|
|
|
|
|
for (int i=1;i<main_config.arg_size;i++){
|
|
|
|
|
if (!strcmp(main_config.arg_target[i],"socket-id")||!strcmp(main_config.arg_target[i],"socket-ext-id")||!strcmp(main_config.arg_target[i],"socket-trd-id")){ i++;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
char *temp = yon_char_unite(argline," ", main_config.arg_target[i],NULL);
|
|
|
|
|
if(strcmp(argline,"")&&strcmp(argline,LocaleName))
|
|
|
|
|
free(argline);
|
|
|
|
|
argline=temp;
|
|
|
|
|
}
|
|
|
|
|
if (getuid()!=0){
|
|
|
|
|
argline = yon_char_unite("setsid /usr/bin/bash -c 'pkexec ",argline,"'; exit",NULL);
|
|
|
|
|
pthread_t thread_id;
|
|
|
|
|
pthread_create(&thread_id, NULL, (void *)on_root_get_root,argline);
|
|
|
|
|
gtk_widget_destroy(widgets->MainWindow);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
main_config.configure_mode = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(self));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -2568,6 +2593,9 @@ main_window *yon_main_window_complete(){
|
|
|
|
|
gtk_widget_set_sensitive(widgets->SaveLocalConfigurationMenuItem,0);
|
|
|
|
|
gtk_widget_set_sensitive(widgets->SaveGlobalLocalConfigurationMenuItem,0);
|
|
|
|
|
}
|
|
|
|
|
if (getuid()){
|
|
|
|
|
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widgets->ConfigurationModeMenuItem),1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter),0);
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
|
|
|
|
|
@ -2794,6 +2822,8 @@ int main(int argc, char *argv[]){
|
|
|
|
|
exit(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
main_config.arg_size=argc;
|
|
|
|
|
main_config.arg_target=argv;
|
|
|
|
|
|
|
|
|
|
if (getuid()!=0){
|
|
|
|
|
main_config.lock_load_global=1;
|
|
|
|
|
|