diff options
Diffstat (limited to 'src/scm/webid-oidc/client/gui/settings.scm')
-rw-r--r-- | src/scm/webid-oidc/client/gui/settings.scm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/scm/webid-oidc/client/gui/settings.scm b/src/scm/webid-oidc/client/gui/settings.scm index 5ce62b0..57ebbfb 100644 --- a/src/scm/webid-oidc/client/gui/settings.scm +++ b/src/scm/webid-oidc/client/gui/settings.scm @@ -45,6 +45,9 @@ client main-account other-accounts + + client-changed-hook + accounts-changed-hook )) (push-duplicate-handler! 'merge-generics) @@ -208,3 +211,26 @@ (match-lambda* (() (get-other-accounts)) ((value) (set-other-accounts! value)))) + +(define client-changed-hook + (make-hook 1)) + +(define accounts-changed-hook + (make-hook 2)) + +(connect client-settings change-event + (lambda _ + (run-hook client-changed-hook (client)) + #f)) + +(define (run-accounts-changed-hook . _) + (run-hook accounts-changed-hook + (main-account) + (other-accounts)) + #f) + +(connect main-account-settings change-event run-accounts-changed-hook) +(for-each + (lambda (settings) + (connect settings change-event run-accounts-changed-hook)) + other-accounts-settings) |