diff --git a/src/mol-plugin/behavior/static/representation.ts b/src/mol-plugin/behavior/static/representation.ts index 50104160abaddd17f365a5a39fbec2eefbe6c069..7d9a7f351ab44173f51bc4518208f70b64298811 100644 --- a/src/mol-plugin/behavior/static/representation.ts +++ b/src/mol-plugin/behavior/static/representation.ts @@ -76,11 +76,18 @@ export function UpdateRepresentationVisibility(ctx: PluginContext) { ctx.state.data.events.cell.stateUpdated.subscribe(e => { const cell = e.state.cells.get(e.ref)!; if (!SO.isRepresentation3D(cell.obj)) return; - updateVisibility(cell, cell.obj.data.repr); - ctx.canvas3d?.syncVisibility(); + + if (updateVisibility(cell, cell.obj.data.repr)) { + ctx.canvas3d?.syncVisibility(); + } }); } function updateVisibility(cell: StateObjectCell, r: Representation<any>) { - r.setState({ visible: !cell.state.isHidden }); + if (r.state.visible === cell.state.isHidden) { + r.setState({ visible: !cell.state.isHidden }); + return true; + } else { + return false; + } } \ No newline at end of file