diff --git a/src/overlay-manager.coffee b/src/overlay-manager.coffee index 8d0db365d..6dc36b998 100644 --- a/src/overlay-manager.coffee +++ b/src/overlay-manager.coffee @@ -32,10 +32,13 @@ class OverlayManager cachedOverlay = @overlaysById[decorationId] unless overlayNode = cachedOverlay?.overlayNode overlayNode = document.createElement('atom-overlay') - overlayNode.appendChild(itemView) @container.appendChild(overlayNode) @overlaysById[decorationId] = cachedOverlay = {overlayNode, itemView} + # The same node may be used in more than one overlay. This steals the node + # back if it has been displayed in another overlay. + overlayNode.appendChild(itemView) if overlayNode.childNodes.length == 0 + cachedOverlay.pixelPosition = pixelPosition overlayNode.style.top = pixelPosition.top + 'px' overlayNode.style.left = pixelPosition.left + 'px'