- freeing options when root-manager has finished

- fixed a bug in create-workspace-manager causing a non-tail-recursive loop
This commit is contained in:
frese 2003-12-18 16:44:33 +00:00
parent 199ec6a3d5
commit 5a7f8761c3
1 changed files with 5 additions and 5 deletions

View File

@ -94,7 +94,8 @@
(lambda (msg) (lambda (msg)
(handle-message root-wm exit msg)))) (handle-message root-wm exit msg))))
(loop)))) (loop))))
(sync-point-release (root-wm:finish root-wm)))))) (sync-point-release (root-wm:finish root-wm))))
(free-options options #t)))
root-wm)) root-wm))
(define (create-workspace-manager in-channel dpy parent options) (define (create-workspace-manager in-channel dpy parent options)
@ -427,8 +428,7 @@
(let loop () (let loop ()
(let ((e (receive event-channel))) (let ((e (receive event-channel)))
(cond (cond
((destroy-window-event? e) ((destroy-window-event? e) 'done)
(remove-manager! root-wm manager))
((eq? (event-type focus-in) (any-event-type e)) ((eq? (event-type focus-in) (any-event-type e))
(let ((mode (focus-change-event-mode e)) (let ((mode (focus-change-event-mode e))
(detail (focus-change-event-detail e))) (detail (focus-change-event-detail e)))
@ -439,8 +439,8 @@
(send (root-wm:in-channel root-wm) (send (root-wm:in-channel root-wm)
(list 'manager-focused manager)))) (list 'manager-focused manager))))
(loop)) (loop))
(else (loop)))) (else (loop)))))))
(loop))))))) (remove-manager! root-wm manager))))
(define (remove-manager! root-wm manager) (define (remove-manager! root-wm manager)
(set-root-wm:managers! root-wm (set-root-wm:managers! root-wm