Merge pull request #62335 from reduz/fix-editor-only-visibility
This commit is contained in:
commit
49d061f8fc
6 changed files with 20 additions and 0 deletions
|
@ -30,6 +30,11 @@
|
||||||
|
|
||||||
#include "light_2d.h"
|
#include "light_2d.h"
|
||||||
|
|
||||||
|
void Light2D::owner_changed_notify() {
|
||||||
|
// For cases where owner changes _after_ entering tree (as example, editor editing).
|
||||||
|
_update_light_visibility();
|
||||||
|
}
|
||||||
|
|
||||||
void Light2D::_update_light_visibility() {
|
void Light2D::_update_light_visibility() {
|
||||||
if (!is_inside_tree()) {
|
if (!is_inside_tree()) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -73,6 +73,8 @@ private:
|
||||||
|
|
||||||
void _update_light_visibility();
|
void _update_light_visibility();
|
||||||
|
|
||||||
|
virtual void owner_changed_notify() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
_FORCE_INLINE_ RID _get_light() const { return canvas_light; }
|
_FORCE_INLINE_ RID _get_light() const { return canvas_light; }
|
||||||
void _notification(int p_what);
|
void _notification(int p_what);
|
||||||
|
|
|
@ -176,6 +176,11 @@ Ref<Texture2D> Light3D::get_projector() const {
|
||||||
return projector;
|
return projector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Light3D::owner_changed_notify() {
|
||||||
|
// For cases where owner changes _after_ entering tree (as example, editor editing).
|
||||||
|
_update_visibility();
|
||||||
|
}
|
||||||
|
|
||||||
void Light3D::_update_visibility() {
|
void Light3D::_update_visibility() {
|
||||||
if (!is_inside_tree()) {
|
if (!is_inside_tree()) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -85,6 +85,8 @@ private:
|
||||||
|
|
||||||
// bind helpers
|
// bind helpers
|
||||||
|
|
||||||
|
virtual void owner_changed_notify() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
RID light;
|
RID light;
|
||||||
|
|
||||||
|
|
|
@ -420,6 +420,9 @@ void Node::move_child_notify(Node *p_child) {
|
||||||
// to be used when not wanted
|
// to be used when not wanted
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Node::owner_changed_notify() {
|
||||||
|
}
|
||||||
|
|
||||||
void Node::set_physics_process(bool p_process) {
|
void Node::set_physics_process(bool p_process) {
|
||||||
if (data.physics_process == p_process) {
|
if (data.physics_process == p_process) {
|
||||||
return;
|
return;
|
||||||
|
@ -1544,6 +1547,8 @@ void Node::_set_owner_nocheck(Node *p_owner) {
|
||||||
data.owner = p_owner;
|
data.owner = p_owner;
|
||||||
data.owner->data.owned.push_back(this);
|
data.owner->data.owned.push_back(this);
|
||||||
data.OW = data.owner->data.owned.back();
|
data.OW = data.owner->data.owned.back();
|
||||||
|
|
||||||
|
owner_changed_notify();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Node::_release_unique_name_in_owner() {
|
void Node::_release_unique_name_in_owner() {
|
||||||
|
|
|
@ -208,6 +208,7 @@ protected:
|
||||||
virtual void add_child_notify(Node *p_child);
|
virtual void add_child_notify(Node *p_child);
|
||||||
virtual void remove_child_notify(Node *p_child);
|
virtual void remove_child_notify(Node *p_child);
|
||||||
virtual void move_child_notify(Node *p_child);
|
virtual void move_child_notify(Node *p_child);
|
||||||
|
virtual void owner_changed_notify();
|
||||||
|
|
||||||
void _propagate_replace_owner(Node *p_owner, Node *p_by_owner);
|
void _propagate_replace_owner(Node *p_owner, Node *p_by_owner);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue