diff --git a/source/ubl-settings-system.c b/source/ubl-settings-system.c index 8e33e2f..5f21723 100644 --- a/source/ubl-settings-system.c +++ b/source/ubl-settings-system.c @@ -414,15 +414,19 @@ void on_language_changed(GtkComboBox *self, main_window *widgets){ } } +void on_terminal_done(VteTerminal *terminal, gint status, GtkWidget *window){ +if (!status){ + gtk_widget_destroy(window); + } +} + void on_terminal_command_ended(VteTerminal *terminal, gint status, domain_info_window *window){ - textdomain(template_ui_LocaleName); // yon_ubl_status_box_despawn_infinite(GTK_CONTAINER(window->StatusBox)); - if (!status) + if (!status){ yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"success",yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE); - else { + } else { yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"failure",yon_char_get_localised_from_lib(FAIL_LABEL),BACKGROUND_IMAGE_FAIL_TYPE); } - textdomain(LocaleName); } domain_info_window *yon_information_window_new(){ @@ -468,10 +472,9 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){ gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),DOMAIN_CONNECTING_LABEL); gtk_window_set_title(GTK_WINDOW(dialog->Window),DOMAIN_CONNECTING_LABEL); yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_connect_command(adress,login,password,final)); + g_signal_connect(G_OBJECT(dialog->ExecuteTerminal),"child-exited",G_CALLBACK(on_terminal_done),window->Window); gtk_widget_show(dialog->Window); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); - gtk_widget_destroy(window->Window); - free(window); on_config_reload(NULL,widgets); } @@ -588,10 +591,9 @@ void on_domain_disconnect(GtkWidget *self, dictionary *dict){ gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),DISCONNECTION_LABEL); gtk_window_set_title(GTK_WINDOW(dialog->Window),DISCONNECTION_LABEL); yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_disconnect_command(adress,login,password)); + g_signal_connect(G_OBJECT(dialog->ExecuteTerminal),"child-exited",G_CALLBACK(on_terminal_done),window->Window); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); gtk_widget_show(dialog->Window); - gtk_widget_destroy(window->Window); - free(window); on_config_reload(NULL,widgets); }