diff --git a/src/lib/component/controller/GraphController.cpp b/src/lib/component/controller/GraphController.cpp index b05edacc..9a37afa8 100644 --- a/src/lib/component/controller/GraphController.cpp +++ b/src/lib/component/controller/GraphController.cpp @@ -631,7 +631,7 @@ void GraphController::autoExpandActiveNode(const std::vector& activeTokenIds node = getDummyGraphNodeById(activeTokenIds[0]); } - if (node) + if (node && !node->hasMissingChildNodes()) { node->expanded = true; node->autoExpanded = true; diff --git a/src/lib/data/storage/PersistentStorage.cpp b/src/lib/data/storage/PersistentStorage.cpp index 90e2e0a0..fd6adb65 100644 --- a/src/lib/data/storage/PersistentStorage.cpp +++ b/src/lib/data/storage/PersistentStorage.cpp @@ -925,8 +925,15 @@ std::shared_ptr PersistentStorage::getGraphForActiveTokenIds( } else { - nodeIds.push_back(elementId); m_hierarchyCache.addFirstChildIdsForNodeId(elementId, &nodeIds, &edgeIds); + + // don't expand active node if it has more than 20 child nodes + if (nodeIds.size() > 20) + { + nodeIds.clear(); + } + + nodeIds.push_back(elementId); edgeIds.clear(); std::vector edges = m_sqliteIndexStorage.getEdgesBySourceOrTargetId(elementId);