From 907df1c10eb2ec0ce7cfa3f761caf71ccdd09d5e Mon Sep 17 00:00:00 2001 From: Quincy Morgan Date: Wed, 1 May 2019 11:08:52 -0700 Subject: [PATCH] Include relation members when forcing relations visible in all cases, not just selection (re: 6eeaf9407606bc06e87af735228d1a102a9ce254) --- modules/modes/select.js | 13 +------------ modules/renderer/features.js | 7 +++++++ 2 files changed, 8 insertions(+), 12 deletions(-) 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; };