From 41cd0021b047a6b7f21a35393b2f42017147e3fd Mon Sep 17 00:00:00 2001 From: Hans Dijkema Date: Thu, 30 Apr 2026 23:16:41 +0200 Subject: [PATCH] make sure the "closed" event comes. It will not come from the C backend, so we generate it in the racket-webview-qt.rkt module" --- example1/example.rkt | 4 +--- racket-webview-qt.rkt | 9 ++++++++- wv-window.rkt | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/example1/example.rkt b/example1/example.rkt index d5f9292..e217a31 100644 --- a/example1/example.rkt +++ b/example1/example.rkt @@ -113,9 +113,7 @@ (unless (eq? counter-thread #f) (send this message 'warning "Cannot close window" "Cannot close this window while the counter runs")) - (if (eq? counter-thread #f) - (super can-close?) - #f)) + (eq? counter-thread #f)) (define start-stop-btn #f) diff --git a/racket-webview-qt.rkt b/racket-webview-qt.rkt index 3841ea4..0d953e7 100644 --- a/racket-webview-qt.rkt +++ b/racket-webview-qt.rkt @@ -746,7 +746,14 @@ (define (rkt-webview-close handle) (rkt_webview_close (rkt-wv-win handle)) - ;(enqueue! (rkt-wv-evt-queue handle) 'quit) + (let ((evt-cb (hash-ref evt-cb-hash (rkt-wv-win handle) (λ args #t)))) + (let ((evt (format + (string-append "{ \"event\": \"closed\", " + " \"elaped\": -1.0, " + " \"evt-id\": -98832, " + " \"timestamp\": ~a }") + (current-milliseconds)))) + (evt-cb evt))) (set-rkt-wv-valid! handle #f) (hash-remove! evt-cb-hash (rkt-wv-win handle)) (hash-remove! rkt-wv-store (rkt-wv-win handle)) diff --git a/wv-window.rkt b/wv-window.rkt index 1db0176..702083b 100644 --- a/wv-window.rkt +++ b/wv-window.rkt @@ -248,11 +248,11 @@ #t) (define/public (can-close?) - (when quit-on-close - (send this quit)) #t) (define/public (closed) + (when quit-on-close + (send this quit)) #t) (define/public (js-event js-event)