From 64944ef1a24bae05cf8a39013a7d8cd2637c199d Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 4 Apr 2025 16:09:41 +0600 Subject: [PATCH] Fixed domain windows closing --- source/ubl-settings-system.c | 50 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/source/ubl-settings-system.c b/source/ubl-settings-system.c index c1e5fbd..b46d564 100644 --- a/source/ubl-settings-system.c +++ b/source/ubl-settings-system.c @@ -297,7 +297,7 @@ void on_locale_open(GtkWidget *self, main_window *widgets){ if (!config(locale_parameter)){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1); } - + yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),TITLE_LABEL,main_icon,"LocalesWindow"); gtk_dialog_run(GTK_DIALOG(window->Window)); @@ -448,9 +448,10 @@ 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)); - gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window)); gtk_widget_show(dialog->Window); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); + gtk_widget_destroy(window->Window); + free(window); } @@ -566,9 +567,10 @@ 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)); - gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window)); - gtk_widget_show(dialog->Window); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); + gtk_widget_show(dialog->Window); + gtk_widget_destroy(window->Window); + free(window); } domain_window *yon_domain_window_new(){ @@ -591,28 +593,28 @@ domain_window *yon_domain_window_new(){ void on_domain_opened(GtkWidget *self, main_window *widgets){ if (main_config.domain_connected){ - domain_window *window = yon_domain_window_new(); - gtk_label_set_text(GTK_LABEL(window->HeadLabel),DOMAIN_CONNECTING_LABEL); - yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),DISCONNECTION_LABEL,"com.ublinux.ubl-settings-system","DomainWindow"); - char *domain = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry)); - char *password = yon_config_get_by_key(DOMAIN_ADMANGER); - char *login = yon_char_divide_search(password,":",-1); - char *dns = config(DOMAIN_DNS); - if (!yon_char_is_empty(login)) - gtk_entry_set_text(GTK_ENTRY(window->LoginEntry),login); - if (!yon_char_is_empty(password)) - gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password); - if (!yon_char_is_empty(domain)) - gtk_entry_set_text(GTK_ENTRY(window->AdressEntry),domain); - if (!yon_char_is_empty(dns)) - gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns); - dictionary *dict = NULL; - yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); - yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); - g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_domain_disconnect),dict); + domain_window *window = yon_domain_window_new(); + gtk_label_set_text(GTK_LABEL(window->HeadLabel),DOMAIN_CONNECTING_LABEL); + yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),DISCONNECTION_LABEL,"com.ublinux.ubl-settings-system","DomainWindow"); + char *domain = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry)); + char *password = yon_config_get_by_key(DOMAIN_ADMANGER); + char *login = yon_char_divide_search(password,":",-1); + char *dns = config(DOMAIN_DNS); + if (!yon_char_is_empty(login)) + gtk_entry_set_text(GTK_ENTRY(window->LoginEntry),login); + if (!yon_char_is_empty(password)) + gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password); + if (!yon_char_is_empty(domain)) + gtk_entry_set_text(GTK_ENTRY(window->AdressEntry),domain); + if (!yon_char_is_empty(dns)) + gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns); + dictionary *dict = NULL; + yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); + yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); + g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_domain_disconnect),dict); g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_check_domain_connected),widgets); - gtk_widget_show(window->Window); + gtk_widget_show(window->Window); } else { connection_window *window = yon_connection_window_new(); gtk_label_set_text(GTK_LABEL(window->HeadLabel),DOMAIN_CONNECTING_LABEL);