1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-24 15:26:15 +00:00

Merge pull request #108297 from YeldhamDev/inverse_sel_fix

Fix remote deselection not working when selection limit is reached
This commit is contained in:
Thaddeus Crews
2025-08-11 09:55:24 -05:00

View File

@@ -1922,18 +1922,6 @@ void RuntimeNodeSelect::_send_ids(const Vector<Node *> &p_picked_nodes, bool p_i
return; return;
} }
int limit = max_selection - selected_ci_nodes.size();
#ifndef _3D_DISABLED
limit -= selected_3d_nodes.size();
#endif // _3D_DISABLED
if (limit <= 0) {
return;
}
if (picked_nodes.size() > limit) {
picked_nodes.resize(limit);
EngineDebugger::get_singleton()->send_message("show_selection_limit_warning", Array());
}
LocalVector<Node *> nodes; LocalVector<Node *> nodes;
LocalVector<ObjectID> ids; LocalVector<ObjectID> ids;
for (Node *node : picked_nodes) { for (Node *node : picked_nodes) {
@@ -1963,6 +1951,16 @@ void RuntimeNodeSelect::_send_ids(const Vector<Node *> &p_picked_nodes, bool p_i
} }
} }
uint32_t limit = max_selection - selected_ci_nodes.size();
#ifndef _3D_DISABLED
limit -= selected_3d_nodes.size();
#endif // _3D_DISABLED
if (ids.size() > limit) {
ids.resize(limit);
nodes.resize(limit);
EngineDebugger::get_singleton()->send_message("show_selection_limit_warning", Array());
}
for (ObjectID id : selected_ci_nodes) { for (ObjectID id : selected_ci_nodes) {
ids.push_back(id); ids.push_back(id);
nodes.push_back(ObjectDB::get_instance<Node>(id)); nodes.push_back(ObjectDB::get_instance<Node>(id));
@@ -1974,11 +1972,6 @@ void RuntimeNodeSelect::_send_ids(const Vector<Node *> &p_picked_nodes, bool p_i
} }
#endif // _3D_DISABLED #endif // _3D_DISABLED
if (ids.size() > (unsigned)max_selection) {
ids.resize(max_selection);
EngineDebugger::get_singleton()->send_message("show_selection_limit_warning", Array());
}
if (ids.is_empty()) { if (ids.is_empty()) {
EngineDebugger::get_singleton()->send_message("remote_nothing_selected", message); EngineDebugger::get_singleton()->send_message("remote_nothing_selected", message);
} else { } else {