From 49666d7ea957b1cb36af56b03c65fe53572a7815 Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Mon, 21 Apr 2025 19:57:19 -0400 Subject: [PATCH] Everywhere: Kill app_event_loop on window close --- Applications/Accessories/Calculator.app/Run.HC | 1 + Applications/Internet/Cyberia.app/Cyberia.HC | 1 + Applications/OS/ShutDown.app/Run.HC | 1 + Applications/OS/TempleOS.app/Run.HC | 1 + Applications/OS/Terminal.app/Run.HC | 1 + Applications/TestApplication.app/Run.HC | 16 +++++++++++++--- 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Applications/Accessories/Calculator.app/Run.HC b/Applications/Accessories/Calculator.app/Run.HC index f7022fd..8500747 100644 --- a/Applications/Accessories/Calculator.app/Run.HC +++ b/Applications/Accessories/Calculator.app/Run.HC @@ -50,6 +50,7 @@ U0 window_close(Window* win) Gui.Window.SetFocus(Compositor.GetWindowByTitle("Wallpaper")); Compositor.UnregisterForGlobalInputEvents(win); Compositor.DestroyWindow(win); + Kill(app_event_loop); } U0 Main() diff --git a/Applications/Internet/Cyberia.app/Cyberia.HC b/Applications/Internet/Cyberia.app/Cyberia.HC index 3be0558..e4a46d5 100644 --- a/Applications/Internet/Cyberia.app/Cyberia.HC +++ b/Applications/Internet/Cyberia.app/Cyberia.HC @@ -127,6 +127,7 @@ U0 @cyberia_win_close(Window* win) } Compositor.UnregisterForGlobalInputEvents(win); Compositor.DestroyWindow(win); + Kill(app_event_loop); } U8* @browser_tls_connection_state(@http_response* resp) diff --git a/Applications/OS/ShutDown.app/Run.HC b/Applications/OS/ShutDown.app/Run.HC index 963f806..c283c4d 100644 --- a/Applications/OS/ShutDown.app/Run.HC +++ b/Applications/OS/ShutDown.app/Run.HC @@ -13,6 +13,7 @@ U0 @shutdown_callback(U64 o) } } Compositor.DestroyWindow(win); + Kill(app_event_loop); Gui.Window.SetFocus(Compositor.GetWindowByTitle("Wallpaper")); } diff --git a/Applications/OS/TempleOS.app/Run.HC b/Applications/OS/TempleOS.app/Run.HC index edbcdf8..0dc079f 100644 --- a/Applications/OS/TempleOS.app/Run.HC +++ b/Applications/OS/TempleOS.app/Run.HC @@ -19,6 +19,7 @@ U0 @templeos_close_callback(Window* win) Kill(templeos_winmgr_task); Compositor.UnregisterForGlobalInputEvents(win); Compositor.DestroyWindow(win); + Kill(app_event_loop); win = NULL; Exit; } diff --git a/Applications/OS/Terminal.app/Run.HC b/Applications/OS/Terminal.app/Run.HC index 30e25f5..66805e2 100644 --- a/Applications/OS/Terminal.app/Run.HC +++ b/Applications/OS/Terminal.app/Run.HC @@ -132,6 +132,7 @@ U0 window_close(Window* win) Gui.Window.SetFocus(Compositor.GetWindowByTitle("Wallpaper")); Compositor.UnregisterForGlobalInputEvents(win); Compositor.DestroyWindow(win); + Kill(app_event_loop); } U0 @terminal_vscroll_change(Widget*) diff --git a/Applications/TestApplication.app/Run.HC b/Applications/TestApplication.app/Run.HC index 8539dfe..0602be0 100644 --- a/Applications/TestApplication.app/Run.HC +++ b/Applications/TestApplication.app/Run.HC @@ -1,13 +1,22 @@ -#include "M:/Include/Gui"; +Gui.App(); -U0 window_close(Window* win) { Compositor.DestroyWindow(win); } +U0 app_window_close(Window* win) +{ + Compositor.DestroyWindow(win); + Kill(app_event_loop); +} + +U0 new_window_close(Window* win) +{ + Compositor.DestroyWindow(win); +} U0 btn1_click(Widget* widget) { no_warn widget; Window* win = Compositor.CreateWindow(Rand * Display.Width(), Rand * Display.Height(), 320, 240, WIN_FLAGS_DEFAULT); - win->callback.close = &window_close; + Gui.Window.SetCallback(win, "close", &new_window_close); Gui.Window.SetTitle(win, "New Window"); Gui.Window.SetFocus(win); } @@ -30,6 +39,7 @@ U0 Main() win->alpha = TRUE; Gui.Window.Center(win); Gui.Window.SetTitle(win, "Test Application"); + Gui.Window.SetCallback(win, "close", &app_window_close); TextInputWidget* label1 = Gui.CreateWidget(win, WIDGET_TYPE_LABEL, 8, 0, 192, 64); Gui.Widget.SetText(label1,