- 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:
parent
199ec6a3d5
commit
5a7f8761c3
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue