-(defmethod signal-connect ((dialog dialog) signal function &key object)
- (case signal
- (response
- #'(lambda (dialog response-id-num)
- (let ((response-id (%dialog-find-response-id dialog response-id-num)))
- (cond
- ((eq object t) (funcall function dialog response-id))
- (object (funcall function object response-id))
- (t (funcall function response-id))))))
+(defmethod signal-connect ((dialog dialog) signal function &key object after)
+ (let ((response-id-num (%dialog-find-response-id-num dialog signal)))
+ (cond
+ (response-id-num
+ (call-next-method
+ dialog 'response
+ #'(lambda (dialog id)
+ (when (= id response-id-num)
+ (cond
+ ((eq object t) (funcall function dialog))
+ (object (funcall function object))
+ (t (funcall function)))))
+ :object t :after after))