From e98e41516849e55d267d9fce8f9772129ff0301c Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 9 Jun 2023 14:18:08 +0200 Subject: [PATCH] Fix signal handler error. --- scene/2d/navigation_polygon_instance.cpp | 12 ++++++++++-- scene/2d/navigation_polygon_instance.h | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scene/2d/navigation_polygon_instance.cpp b/scene/2d/navigation_polygon_instance.cpp index 087d500ac..051496e74 100644 --- a/scene/2d/navigation_polygon_instance.cpp +++ b/scene/2d/navigation_polygon_instance.cpp @@ -274,6 +274,13 @@ void NavigationPolygonInstance::_navigation_map_changed(RID p_map) { update(); } } +void NavigationPolygonInstance::_navigation_debug_changed() { + if (navigation != nullptr && enabled) { + update(); + } else if (is_inside_tree() && enabled) { + update(); + } +} #endif // DEBUG_ENABLED String NavigationPolygonInstance::get_configuration_warning() const { @@ -324,6 +331,7 @@ void NavigationPolygonInstance::_bind_methods() { #ifdef DEBUG_ENABLED ClassDB::bind_method(D_METHOD("_navigation_map_changed"), &NavigationPolygonInstance::_navigation_map_changed); + ClassDB::bind_method(D_METHOD("_navigation_debug_changed"), &NavigationPolygonInstance::_navigation_debug_changed); #endif ClassDB::bind_method(D_METHOD("_navpoly_changed"), &NavigationPolygonInstance::_navpoly_changed); @@ -350,7 +358,7 @@ NavigationPolygonInstance::NavigationPolygonInstance() { #ifdef DEBUG_ENABLED Navigation2DServer::get_singleton_mut()->connect("map_changed", this, "_navigation_map_changed"); - NavigationServer::get_singleton_mut()->connect("navigation_debug_changed", this, "_navigation_map_changed"); + NavigationServer::get_singleton_mut()->connect("navigation_debug_changed", this, "_navigation_debug_changed"); #endif // DEBUG_ENABLED } @@ -361,7 +369,7 @@ NavigationPolygonInstance::~NavigationPolygonInstance() { #ifdef DEBUG_ENABLED Navigation2DServer::get_singleton_mut()->disconnect("map_changed", this, "_navigation_map_changed"); - NavigationServer::get_singleton_mut()->disconnect("navigation_debug_changed", this, "_navigation_map_changed"); + NavigationServer::get_singleton_mut()->disconnect("navigation_debug_changed", this, "_navigation_debug_changed"); #endif // DEBUG_ENABLED } diff --git a/scene/2d/navigation_polygon_instance.h b/scene/2d/navigation_polygon_instance.h index 6c60e1869..1db7759df 100644 --- a/scene/2d/navigation_polygon_instance.h +++ b/scene/2d/navigation_polygon_instance.h @@ -59,6 +59,7 @@ class NavigationPolygonInstance : public Node2D { void _update_debug_mesh(); void _update_debug_edge_connections_mesh(); void _navigation_map_changed(RID p_map); + void _navigation_debug_changed(); #endif // DEBUG_ENABLED protected: