-(let* ((signal-id (compute-signal-id gobject signal))
- (detail-quark (if detail (quark-intern detail) 0))
- (signal-stop-emission
- #'(lambda ()
- (%signal-stop-emission gobject signal-id detail-quark)))
- (callback (compute-signal-function gobject signal function object args))
- (wrapper #'(lambda (&rest args)
- (let ((*signal-stop-emission* signal-stop-emission))
- (apply callback args)))))
- (multiple-value-bind (closure-id callback-id)
- (make-callback-closure wrapper signal-handler-marshal)
- (let ((handler-id (%signal-connect-closure-by-id
- gobject signal-id detail-quark closure-id after)))
- (when remove
- (update-user-data callback-id
- #'(lambda (&rest args)
+ (let* ((signal-id (compute-signal-id gobject signal))
+ (detail-quark (if detail (quark-intern detail) 0))
+ (callback
+ (compute-signal-function gobject signal function object args))
+ (wrapper
+ #'(lambda (&rest args)
+ (let ((*signal-stop-emission*
+ #'(lambda ()
+ (%signal-stop-emission (first args)
+ signal-id detail-quark))))
+ (apply callback args)))))
+ (multiple-value-bind (closure-id callback-id)
+ (make-callback-closure wrapper signal-handler-marshal)
+ (let ((handler-id (%signal-connect-closure-by-id
+ gobject signal-id detail-quark closure-id after)))
+ (when remove
+ (update-user-data callback-id
+ #'(lambda (&rest args)
+ (let ((gobject (first args)))