diff --git a/editor/plugins/tiles/tile_map_layer_editor.cpp b/editor/plugins/tiles/tile_map_layer_editor.cpp index c00a6d99d3a..e1a58a0998c 100644 --- a/editor/plugins/tiles/tile_map_layer_editor.cpp +++ b/editor/plugins/tiles/tile_map_layer_editor.cpp @@ -3672,10 +3672,16 @@ void TileMapLayerEditor::_node_change(Node *p_node) { void TileMapLayerEditor::_notification(int p_what) { switch (p_what) { - case NOTIFICATION_READY: { + case NOTIFICATION_ENTER_TREE: { get_tree()->connect("node_added", callable_mp(this, &TileMapLayerEditor::_node_change)); get_tree()->connect("node_removed", callable_mp(this, &TileMapLayerEditor::_node_change)); } break; + + case NOTIFICATION_EXIT_TREE: { + get_tree()->disconnect("node_added", callable_mp(this, &TileMapLayerEditor::_node_change)); + get_tree()->disconnect("node_removed", callable_mp(this, &TileMapLayerEditor::_node_change)); + } break; + case NOTIFICATION_THEME_CHANGED: { missing_tile_texture = get_editor_theme_icon(SNAME("StatusWarning")); warning_pattern_texture = get_editor_theme_icon(SNAME("WarningPattern"));