diff --git a/libraries/entities/src/EntityEditFilters.cpp b/libraries/entities/src/EntityEditFilters.cpp index d58b996878..3071072efc 100644 --- a/libraries/entities/src/EntityEditFilters.cpp +++ b/libraries/entities/src/EntityEditFilters.cpp @@ -48,7 +48,7 @@ bool EntityEditFilters::filter(glm::vec3& position, EntityItemProperties& proper // lies within auto zoneIDs = getZonesByPosition(position); for (auto id : zoneIDs) { - if (id == itemID) { + if (!itemID.isInvalidID() && id == itemID) { continue; } @@ -74,7 +74,7 @@ bool EntityEditFilters::filter(glm::vec3& position, EntityItemProperties& proper QScriptValue result = filterData.filterFn.call(_nullObjectForFilter, args); if (filterData.uncaughtExceptions()) { - result = QScriptValue(); + return false; } if (result.isObject()){ @@ -87,8 +87,6 @@ bool EntityEditFilters::filter(glm::vec3& position, EntityItemProperties& proper auto out = QJsonValue::fromVariant(result.toVariant()); wasChanged |= (in != out); } else { - // an edit was rejected, so we stop here and return false - qCDebug(entities) << "Edit rejected by filter " << id ; return false; } } diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index 04f185ce97..0f65ac55ff 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -928,9 +928,9 @@ void EntityTree::fixupTerseEditLogging(EntityItemProperties& properties, QList(); - if (entityEditFilters && existingEntity) { - auto position = existingEntity->getPosition(); - auto entityID = existingEntity->getEntityItemID(); + if (entityEditFilters) { + auto position = existingEntity ? existingEntity->getPosition() : propertiesIn.getPosition(); + auto entityID = existingEntity ? existingEntity->getEntityItemID() : EntityItemID(); accepted = entityEditFilters->filter(position, propertiesIn, propertiesOut, wasChanged, filterType, entityID); }