From f1d736652bb2a9fa7d1e9ac1e0499ad4dc55e283 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 13 Jan 2026 16:55:00 +0000 Subject: [PATCH] Removed exit confirmation after installation has finished; Added confirmation for system rebooting --- source/ubinstall-gtk-page-switch.c | 3 +- source/ubinstall-gtk.c | 45 ++++++++++++++++++------------ 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index cc7948f..b5dcec1 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -43,9 +43,8 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){ case YON_PAGE_CONFIGURE_END: case YON_PAGE_RECOVERY_COMPLETION: case YON_PAGE_COMPLETION: + on_reboot_accepted(widgets); - gtk_main_quit(); - exit(0); break; // default:return YON_PAGE_WELCOME; } diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 244f342..64eb6b5 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -410,15 +410,23 @@ void on_gparted_update(GtkWidget *, main_window *widgets){ yon_devices_setup(widgets); } -void on_reboot_accepted(main_window *){ - g_mutex_lock(&main_config.install_mutex); - if (main_config.install_thread){ - pthread_cancel((pthread_t)main_config.install_thread); - g_mutex_unlock(&main_config.install_mutex); - } - main_config.exit_accepted=1; - while(gtk_events_pending()) gtk_main_iteration(); - if (system("reboot")){}; +void on_reboot_accepted(main_window *widgets){ + dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); + data->action_text=WARNING_REBOOT_TEXT_LABEL; + data->title=WARNING_TITLE_LABEL; + if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){ + g_mutex_lock(&main_config.install_mutex); + if (main_config.install_thread){ + pthread_cancel((pthread_t)main_config.install_thread); + g_mutex_unlock(&main_config.install_mutex); + } + main_config.exit_accepted=1; + while(gtk_events_pending()) gtk_main_iteration(); + if (system("reboot")){}; + + gtk_main_quit(); + exit(0); + } } void on_exit_accepted(main_window *){ @@ -435,15 +443,16 @@ void on_exit_accepted(main_window *){ gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){ if (!main_config.exit_accepted||(main_config.save_done&&main_config.install_complete)){ - if (widgets){}; - dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); - data->action_text=INTERRUPT_TEXT_LABEL; - data->title=WARNING_TITLE_LABEL; - if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){ - yon_window_config_save_instant(); - on_exit_accepted(widgets); - gtk_main_quit(); - return 1; + if (!main_config.install_complete&&!main_config.save_configured){ + dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); + data->action_text=INTERRUPT_TEXT_LABEL; + data->title=WARNING_TITLE_LABEL; + if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){ + yon_window_config_save_instant(); + on_exit_accepted(widgets); + gtk_main_quit(); + return 1; + } } }