diff --git a/gui.rkt b/gui.rkt index 4fd3614..2bc3ea7 100644 --- a/gui.rkt +++ b/gui.rkt @@ -532,19 +532,12 @@ (send player seek percentage) ) - (define quit-callback (lambda () #t)) - - (define/public (on-quit callback) - (set! quit-callback callback)) - - (define/public (quit) + (define/override (quit) (dbg-rktplayer "Quitting") (send player quit) (set! closed #t) (send this close) - (webview-exit) - (quit-callback) - (exit) + (super quit) ) (define/public (select-library) diff --git a/rktplayer.rkt b/rktplayer.rkt index 9f7211a..fa44989 100644 --- a/rktplayer.rkt +++ b/rktplayer.rkt @@ -10,7 +10,7 @@ net/uri-codec ) -(provide run-rktplayer) +(provide run) (define-runtime-path rkt-gui-dir "gui") @@ -47,13 +47,9 @@ (window (new rktplayer% [wv-context context])) ) ;(send window devtools) - (let ((sem (make-semaphore))) - (send window on-quit (lambda () (semaphore-post sem))) - sem) + (webview-wait-for-quit) + (webview-exit) + (exit) ) ) -(define (run-rktplayer) - (let ((sem (run))) - (semaphore-wait sem))) -