diff --git a/src/mol-util/marker-action.ts b/src/mol-util/marker-action.ts index 53bcd5e4fadca982ce45040684d6c0847e0d680f..7ebe4f7b82d219c4435b68f8716e5917353fd7c1 100644 --- a/src/mol-util/marker-action.ts +++ b/src/mol-util/marker-action.ts @@ -105,8 +105,13 @@ export function applyMarkerAction(array: Uint8Array, set: OrderedSet, action: Ma applyMarkerActionAtPosition(array, i, action); } - for (let i = backStart; i < backEnd; ++i) { - applyMarkerActionAtPosition(array, i, action); + // to prevent applying "toggle" twice check for edge case where + // viewEnd <= viewStart, which resolves to the "front" and "back" + // intervals being the same range + if (frontStart !== backStart) { + for (let i = backStart; i < backEnd; ++i) { + applyMarkerActionAtPosition(array, i, action); + } } } else { switch (action) {