(defmethod reinitialize-instance :around ((class gobject-class) &rest initargs &key (direct-superclasses nil d-s-p) &allow-other-keys)
(declare (ignore direct-superclasses))
(if d-s-p
- (call-next-method)
- (apply #'call-next-method class (compute-new-initargs-for-metaclass initargs 'g-object))))
+ (apply #'call-next-method class (compute-new-initargs-for-metaclass initargs 'g-object))
+ (call-next-method)))
(defmethod initialize-instance :after ((object gobject-class) &key &allow-other-keys)
(when (gobject-class-direct-g-type-name object)
(at-init (object) (initialize-gobject-class-g-type object))))
(defmethod finalize-inheritance :after ((class gobject-class))
+ (iter (for superclass in (class-direct-superclasses class))
+ (unless (class-finalized-p superclass) (finalize-inheritance superclass)))
(setf (gobject-class-g-type-name class)
(or (gobject-class-direct-g-type-name class)
(let ((gobject-superclass (iter (for superclass in (class-direct-superclasses class))