mirror of
https://github.com/godotengine/godot.git
synced 2026-01-03 18:11:19 +03:00
Fixes #15416 - "The deleted nodes are hanging in the inspector."
This commit is contained in:
@@ -38,7 +38,7 @@
|
||||
#include "project_settings.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
|
||||
void EditorHistory::_cleanup_history() {
|
||||
void EditorHistory::cleanup_history() {
|
||||
|
||||
for (int i = 0; i < history.size(); i++) {
|
||||
|
||||
@@ -48,8 +48,14 @@ void EditorHistory::_cleanup_history() {
|
||||
if (!history[i].path[j].ref.is_null())
|
||||
continue;
|
||||
|
||||
if (ObjectDB::get_instance(history[i].path[j].object))
|
||||
continue; //has isntance, try next
|
||||
Object *obj = ObjectDB::get_instance(history[i].path[j].object);
|
||||
if (obj) {
|
||||
Node *n = Object::cast_to<Node>(obj);
|
||||
if (n && n->is_inside_tree())
|
||||
continue;
|
||||
if (!n) // Possibly still alive
|
||||
continue;
|
||||
}
|
||||
|
||||
if (j <= history[i].level) {
|
||||
//before or equal level, complete fail
|
||||
@@ -152,7 +158,7 @@ bool EditorHistory::is_at_end() const {
|
||||
|
||||
bool EditorHistory::next() {
|
||||
|
||||
_cleanup_history();
|
||||
cleanup_history();
|
||||
|
||||
if ((current + 1) < history.size())
|
||||
current++;
|
||||
@@ -164,7 +170,7 @@ bool EditorHistory::next() {
|
||||
|
||||
bool EditorHistory::previous() {
|
||||
|
||||
_cleanup_history();
|
||||
cleanup_history();
|
||||
|
||||
if (current > 0)
|
||||
current--;
|
||||
|
||||
Reference in New Issue
Block a user