Skip to content

Commit

Permalink
Merge pull request #58642 from rburing/joints_fix_signals_3.x
Browse files Browse the repository at this point in the history
  • Loading branch information
akien-mga authored Mar 1, 2022
2 parents 19ec1c2 + 322e3a9 commit 29d78f2
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
11 changes: 8 additions & 3 deletions scene/2d/joints_2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,17 @@ NodePath Joint2D::get_node_b() const {

void Joint2D::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_READY: {
case NOTIFICATION_POST_ENTER_TREE: {
if (joint.is_valid()) {
_disconnect_signals();
}
_update_joint();
} break;
case NOTIFICATION_EXIT_TREE: {
if (joint.is_valid()) {
_disconnect_signals();
_update_joint(true);
}
_update_joint(true);
} break;
}
}
Expand All @@ -195,7 +198,9 @@ void Joint2D::set_exclude_nodes_from_collision(bool p_enable) {
if (exclude_from_collision == p_enable) {
return;
}

if (joint.is_valid()) {
_disconnect_signals();
}
_update_joint(true);
exclude_from_collision = p_enable;
_update_joint();
Expand Down
11 changes: 9 additions & 2 deletions scene/3d/physics_joint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,14 +178,17 @@ int Joint::get_solver_priority() const {

void Joint::_notification(int p_what) {
switch (p_what) {
case NOTIFICATION_READY: {
case NOTIFICATION_POST_ENTER_TREE: {
if (joint.is_valid()) {
_disconnect_signals();
}
_update_joint();
} break;
case NOTIFICATION_EXIT_TREE: {
if (joint.is_valid()) {
_disconnect_signals();
_update_joint(true);
}
_update_joint(true);
} break;
}
}
Expand All @@ -194,6 +197,10 @@ void Joint::set_exclude_nodes_from_collision(bool p_enable) {
if (exclude_from_collision == p_enable) {
return;
}
if (joint.is_valid()) {
_disconnect_signals();
}
_update_joint(true);
exclude_from_collision = p_enable;
_update_joint();
}
Expand Down

0 comments on commit 29d78f2

Please sign in to comment.