You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-25 15:37:42 +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:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user