webview-call-js can return #f, this is now an accepted return value in other webview-.. functions that make use of call-js.

This commit is contained in:
2026-05-19 13:34:52 +02:00
parent c1b0d8559c
commit 325e890737
+22 -17
View File
@@ -718,10 +718,11 @@
(wv-win-window-nr wv) sel evt (if no-prevent-default 'true 'false))) (wv-win-window-nr wv) sel evt (if no-prevent-default 'true 'false)))
(r (webview-call-js wv j)) (r (webview-call-js wv j))
) )
;(dbg-webview "called js: ~a" j) (if (eq? r #f)
(map (λ (el) #f
(list (string->symbol (car el)) (cadr el) (caddr el))) (map (λ (el)
r)))) (list (string->symbol (car el)) (cadr el) (caddr el)))
r)))))
(define/contract (webview-unbind! wv selector event) (define/contract (webview-unbind! wv selector event)
(-> wv-win? (or/c symbol? string?) (or/c symbol? list-of-symbol?) list?) (-> wv-win? (or/c symbol? string?) (or/c symbol? list-of-symbol?) list?)
@@ -735,9 +736,11 @@
(let ((r (webview-call-js wv (let ((r (webview-call-js wv
(format "return window.rkt_unbind_evt_ids(~a, '~a', ~a)" (format "return window.rkt_unbind_evt_ids(~a, '~a', ~a)"
(wv-win-window-nr wv) sel evt)))) (wv-win-window-nr wv) sel evt))))
(map (λ (el) (if (eq? r #f)
(list (string->symbol (car el)) (cadr el) (caddr el))) #f
r)))) (map (λ (el)
(list (string->symbol (car el)) (cadr el) (caddr el)))
r)))))
(define/contract (webview-run-js wv js) (define/contract (webview-run-js wv js)
(-> wv-win? string? symbol?) (-> wv-win? string? symbol?)
@@ -857,7 +860,7 @@
(define/contract (webview-add-class! wv id-or-selector class) (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) (let ((sel (if (symbol? id-or-selector)
(format "#~a" id-or-selector) (format "#~a" id-or-selector)
id-or-selector)) id-or-selector))
@@ -877,7 +880,7 @@
) )
(define/contract (webview-remove-class! wv id-or-selector class) (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) (let ((sel (if (symbol? id-or-selector)
(format "#~a" id-or-selector) (format "#~a" id-or-selector)
id-or-selector)) id-or-selector))
@@ -899,7 +902,7 @@
) )
(define/contract (webview-set-style! wv selector style-entries) (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) (let ((sel (if (symbol? selector)
(format "#~a" selector) (format "#~a" selector)
selector)) selector))
@@ -945,18 +948,20 @@
" return { id: id, style: r };" " return { id: id, style: r };"
"}") cl)) "}") cl))
))) )))
(let ((h (hash-ref r 'with-ids))) (if (eq? r #f)
(let ((l (map (λ (e) (cons (string->symbol (hash-ref e 'id)) (hash-ref e 'style))) h))) #f
(if (symbol? selector) (let ((h (hash-ref r 'with-ids)))
(cdr (car l)) (let ((l (map (λ (e) (cons (string->symbol (hash-ref e 'id)) (hash-ref e 'style))) h)))
l))) (if (symbol? selector)
(cdr (car l))
l))))
) )
) )
) )
(define/contract (webview-unset-style! wv selector style-entries) (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) (let ((sel (if (symbol? selector)
(format "#~a" selector) (format "#~a" selector)
selector)) selector))
@@ -982,7 +987,7 @@
(define/contract (webview-set-attr! wv selector attr-entries) (define/contract (webview-set-attr! wv selector attr-entries)
(-> wv-win? (or/c symbol? string?) (-> 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) (let* ((sel (if (symbol? selector)
(format "#~a" selector) (format "#~a" selector)
selector)) selector))