diff --git a/racket-webview.rkt b/racket-webview.rkt index 47c6207..96bae6a 100644 --- a/racket-webview.rkt +++ b/racket-webview.rkt @@ -718,10 +718,11 @@ (wv-win-window-nr wv) sel evt (if no-prevent-default 'true 'false))) (r (webview-call-js wv j)) ) - ;(dbg-webview "called js: ~a" j) - (map (λ (el) - (list (string->symbol (car el)) (cadr el) (caddr el))) - r)))) + (if (eq? r #f) + #f + (map (λ (el) + (list (string->symbol (car el)) (cadr el) (caddr el))) + r))))) (define/contract (webview-unbind! wv selector event) (-> wv-win? (or/c symbol? string?) (or/c symbol? list-of-symbol?) list?) @@ -735,9 +736,11 @@ (let ((r (webview-call-js wv (format "return window.rkt_unbind_evt_ids(~a, '~a', ~a)" (wv-win-window-nr wv) sel evt)))) - (map (λ (el) - (list (string->symbol (car el)) (cadr el) (caddr el))) - r)))) + (if (eq? r #f) + #f + (map (λ (el) + (list (string->symbol (car el)) (cadr el) (caddr el))) + r))))) (define/contract (webview-run-js wv js) (-> wv-win? string? symbol?) @@ -857,7 +860,7 @@ (define/contract (webview-add-class! wv id-or-selector class) - (-> wv-win? (or/c symbol? string?) (or/c symbol? string? list?) hash?) + (-> wv-win? (or/c symbol? string?) (or/c symbol? string? list?) (or/c hash? boolean?)) (let ((sel (if (symbol? id-or-selector) (format "#~a" id-or-selector) id-or-selector)) @@ -877,7 +880,7 @@ ) (define/contract (webview-remove-class! wv id-or-selector class) - (-> wv-win? (or/c symbol? string?) (or/c symbol? string? list?) hash?) + (-> wv-win? (or/c symbol? string?) (or/c symbol? string? list?) (or/c hash? boolean?)) (let ((sel (if (symbol? id-or-selector) (format "#~a" id-or-selector) id-or-selector)) @@ -899,7 +902,7 @@ ) (define/contract (webview-set-style! wv selector style-entries) - (-> wv-win? (or/c symbol? string?) (or/c kv? list-of-kv?) hash?) + (-> wv-win? (or/c symbol? string?) (or/c kv? list-of-kv?) (or/c hash? boolean?)) (let ((sel (if (symbol? selector) (format "#~a" selector) selector)) @@ -945,18 +948,20 @@ " return { id: id, style: r };" "}") cl)) ))) - (let ((h (hash-ref r 'with-ids))) - (let ((l (map (λ (e) (cons (string->symbol (hash-ref e 'id)) (hash-ref e 'style))) h))) - (if (symbol? selector) - (cdr (car l)) - l))) + (if (eq? r #f) + #f + (let ((h (hash-ref r 'with-ids))) + (let ((l (map (λ (e) (cons (string->symbol (hash-ref e 'id)) (hash-ref e 'style))) h))) + (if (symbol? selector) + (cdr (car l)) + l)))) ) ) ) (define/contract (webview-unset-style! wv selector style-entries) - (-> wv-win? (or/c symbol? string?) (or/c symbol? list-of-symbol?) hash?) + (-> wv-win? (or/c symbol? string?) (or/c symbol? list-of-symbol?) (or/c hash? boolean?)) (let ((sel (if (symbol? selector) (format "#~a" selector) selector)) @@ -982,7 +987,7 @@ (define/contract (webview-set-attr! wv selector attr-entries) (-> wv-win? (or/c symbol? string?) - (or/c kv? list-of-kv?) hash?) + (or/c kv? list-of-kv?) (or/c hash? boolean?)) (let* ((sel (if (symbol? selector) (format "#~a" selector) selector))