summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBerke Güzel <wenekar1@gmail.com>2026-10-13 16:24:56 +0300
committerBerke Güzel <wenekar1@gmail.com>2026-10-13 16:24:56 +0300
commited963bba0b234d52fda14b2a8237dbf02ef4d655 (patch)
tree0c7bd51ff01089fbc810f94a55e0adb94084478e /src
parent4a61a0f8a749831b74aca04302a30ebbbb6f5586 (diff)
Quit on window close when the app has no event callback
Without yasl_app_desc.event, a close request had nowhere to go and the window stayed open. The runner now stops instead, so hello drops its event callback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'src')
-rw-r--r--src/common/app.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/common/app.c b/src/common/app.c
index 9d52e4a..435d020 100644
--- a/src/common/app.c
+++ b/src/common/app.c
@@ -111,8 +111,13 @@ static void app_runner_surface_close(struct yasl_surface *s, void *ud)
{
struct app_surface *as = ud;
struct app_runner *ar = as ? as->runner : NULL;
- if (!ar || !ar->desc || !ar->desc->event)
+ if (!ar || !ar->desc)
+ return;
+ /* Without an event callback nothing could answer the request, so quit. */
+ if (!ar->desc->event) {
+ ar->running = false;
return;
+ }
emit(ar, &(struct yasl_event){
.type = YASL_EVENT_WINDOW_CLOSE,