From df19222d0b2a0340448ec5d91d98a184482b06e8 Mon Sep 17 00:00:00 2001 From: Maximiliano Sandoval Date: Wed, 21 Jun 2023 10:55:05 +0200 Subject: [PATCH] fix #4643: show a confirmation dialog when clicking abort Note that unlike the rest of the file, we connect to the response signal instead of using Gtk3::Dialog->run, the reason is that run blocks the main loop used by GTK and this undesirable to the point where Gtk3::Dialog->run was removed for GTK 4. Signed-off-by: Maximiliano Sandoval --- proxinstall | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/proxinstall b/proxinstall index 8c49cd6..3d2039f 100755 --- a/proxinstall +++ b/proxinstall @@ -180,7 +180,19 @@ sub create_main_window { my $abort = Gtk3::Button->new('_Abort'); $abort->set_can_focus(0); $cmdbox->pack_start($abort, 0, 0, 10); - $abort->signal_connect(clicked => sub { app_quit(-1); }); + $abort->signal_connect(clicked => sub { + my $msg = 'Abort Installation'; + my $secondary_text = 'Are you sure you want to abort the installation?'; + my $dialog = Gtk3::MessageDialog->new($window, 'modal', 'question', 'yes-no', $msg); + $dialog->format_secondary_text($secondary_text); + $dialog->signal_connect(response => sub { + my ($dialog, $response) = @_; + + $dialog->close(); + app_quit(-1) if $response eq 'yes'; + }); + $dialog->present(); + }); my $vbox2 = Gtk3::Box->new('vertical', 0); $hbox->add($vbox2); -- 2.39.5