diff --git a/modules/modes/select.js b/modules/modes/select.js index 0f614477f..5af485984 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -233,18 +233,7 @@ export function modeSelect(context, selectedIDs) { mode.enter = function() { if (!checkSelectedIDs()) return; - var forceVisibleIDs = selectedIDs.slice(); - - selectedIDs.forEach(function(id) { - var entity = context.entity(id); - if (entity.type === 'relation') { - forceVisibleIDs = forceVisibleIDs.concat(entity.members.map(function(member) { - return member.id; - })); - } - }); - - context.features().forceVisible(forceVisibleIDs); + context.features().forceVisible(selectedIDs); var operations = Object.values(Operations) .map(function(o) { return o(selectedIDs, context); }) diff --git a/modules/renderer/features.js b/modules/renderer/features.js index 31aa32e40..281664471 100644 --- a/modules/renderer/features.js +++ b/modules/renderer/features.js @@ -511,6 +511,13 @@ export function rendererFeatures(context) { _forceVisible = {}; for (var i = 0; i < entityIDs.length; i++) { _forceVisible[entityIDs[i]] = true; + var entity = context.hasEntity(entityIDs[i]); + if (entity && entity.type === 'relation') { + // also show relation members (one level deep) + for (var j in entity.members) { + _forceVisible[entity.members[j].id] = true; + } + } } return features; };