summaryrefslogtreecommitdiff
path: root/Userland/Games/Spider/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Games/Spider/main.cpp')
-rw-r--r--Userland/Games/Spider/main.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/Userland/Games/Spider/main.cpp b/Userland/Games/Spider/main.cpp
index 5bb08011c6..ed39f1d73b 100644
--- a/Userland/Games/Spider/main.cpp
+++ b/Userland/Games/Spider/main.cpp
@@ -155,6 +155,24 @@ int main(int argc, char** argv)
statusbar.set_text(2, "Timer starts after your first move");
};
+ window->on_close_request = [&]() {
+ auto game_in_progress = timer->is_active();
+ if (game_in_progress) {
+ auto result = GUI::MessageBox::show(window,
+ "A game is still in progress, are you sure you would like to quit?",
+ "Game in progress",
+ GUI::MessageBox::Type::Warning,
+ GUI::MessageBox::InputType::YesNoCancel);
+
+ if (result == GUI::MessageBox::ExecYes)
+ return GUI::Window::CloseRequestDecision::Close;
+ else
+ return GUI::Window::CloseRequestDecision::StayOpen;
+ }
+
+ return GUI::Window::CloseRequestDecision::Close;
+ };
+
GUI::ActionGroup suit_actions;
suit_actions.set_exclusive(true);