diff --git a/example1/example.rkt b/example1/example.rkt index 26c2812..0d8b11c 100644 --- a/example1/example.rkt +++ b/example1/example.rkt @@ -157,10 +157,15 @@ ) (define/override (choose-dir) - (let ((new-dir (super choose-dir "Select a folder" my-dir))) - (displayln (format "choosen dir: ~a" new-dir)) - (unless (eq? new-dir #f) - (send this set-folder new-dir)))) + (let ((handle (super choose-dir "Select a folder" my-dir))) + (displayln (format "choosen dir handle: ~a" handle)) + ) + ) + + (define/override (dir-choosen handle choosen dir) + (displayln (format "dir-choosen: ~a ~a ~a" handle choosen dir)) + (when choosen + (send this set-folder dir))) (define/public (prefs) (new example-1-dialog% [parent this] [settings (send this clone-settings 'example-1-dialog)])) diff --git a/private/web-racket.rkt b/private/web-racket.rkt index a6a5b5f..730023e 100644 --- a/private/web-racket.rkt +++ b/private/web-racket.rkt @@ -665,11 +665,15 @@ ) (define/public (choose-dir caption base-dir) - (let ((r (ww-choose-dir win-id caption base-dir))) - (ww-debug (format "choose-dir: ~a" r)) - (if (eq? r 'cmd-nok) - #f - r))) + (let ((bdir (string-trim base-dir))) + (when (or (string=? bdir "") (string=? bdir ".") (string=? bdir "..")) + (set! bdir (path->string (find-system-path 'home-dir)))) + (ww-debug (format "ww-choose-dir ~a ~a ~a" win-id caption bdir)) + (let ((r (ww-choose-dir win-id caption bdir))) + (ww-debug (format "choose-dir: ~a" r)) + (if (eq? r 'cmd-nok) + #f + r)))) (define/public (dir-choosen handle choosen dir) (ww-debug (format "dir-choosen: handle=~a, choosen=~a, dir=~a" handle choosen dir)) diff --git a/private/web-wire.rkt b/private/web-wire.rkt index 1d85090..ccf2a5f 100644 --- a/private/web-wire.rkt +++ b/private/web-wire.rkt @@ -222,7 +222,10 @@ (payload* (substring evt (string-length (list-ref m 0)))) (payload (if (string=? payload* "") (make-hash) - (with-input-from-string (substring payload* 1) read-json))) + (begin + (write payload*)(newline) + (with-input-from-string (substring payload* 1) read-json))) + ) ) (if (eq? evt-handler #f) (ww-error (format "process-event: no event handler to handle event ~a" evt))