Fix NOTIFICATION_POSTINITIALIZE sent twice to native parent class
(cherry picked from commit 06373ce1cf
)
pull/1466/head
parent
1ab42ec6c5
commit
7b93607779
|
@ -76,6 +76,7 @@ protected:
|
|||
uint32_t plist_size = 0;
|
||||
|
||||
void _postinitialize();
|
||||
virtual void _notificationv(int32_t p_what) {}
|
||||
|
||||
Wrapped(const StringName p_godot_class);
|
||||
Wrapped(GodotObject *p_godot_object);
|
||||
|
@ -328,6 +329,11 @@ public:
|
|||
_gde_binding_reference_callback, \
|
||||
}; \
|
||||
\
|
||||
protected: \
|
||||
virtual void _notificationv(int32_t p_what) override { \
|
||||
m_class::notification_bind(this, p_what); \
|
||||
} \
|
||||
\
|
||||
private:
|
||||
|
||||
// Don't use this for your classes, use GDCLASS() instead.
|
||||
|
|
|
@ -51,10 +51,7 @@ void Wrapped::_postinitialize() {
|
|||
}
|
||||
godot::internal::gdextension_interface_object_set_instance_binding(_owner, godot::internal::token, this, _get_bindings_callbacks());
|
||||
if (extension_class) {
|
||||
Object *obj = dynamic_cast<Object *>(this);
|
||||
if (obj) {
|
||||
obj->notification(Object::NOTIFICATION_POSTINITIALIZE);
|
||||
}
|
||||
_notificationv(Object::NOTIFICATION_POSTINITIALIZE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue