diff --git a/js/CanvasLayers.js b/js/CanvasLayers.js index e53fe7d..7e90292 100644 --- a/js/CanvasLayers.js +++ b/js/CanvasLayers.js @@ -323,6 +323,8 @@ export class CanvasLayers { this.canvas.requestSaveState(); } getLayerAtPosition(worldX, worldY) { + // Always sort by zIndex so topmost is checked first + this.canvas.layers.sort((a, b) => a.zIndex - b.zIndex); for (let i = this.canvas.layers.length - 1; i >= 0; i--) { const layer = this.canvas.layers[i]; // Skip invisible layers diff --git a/src/CanvasLayers.ts b/src/CanvasLayers.ts index d0f2e8e..66fc814 100644 --- a/src/CanvasLayers.ts +++ b/src/CanvasLayers.ts @@ -370,6 +370,9 @@ export class CanvasLayers { } getLayerAtPosition(worldX: number, worldY: number): { layer: Layer, localX: number, localY: number } | null { + // Always sort by zIndex so topmost is checked first + this.canvas.layers.sort((a, b) => a.zIndex - b.zIndex); + for (let i = this.canvas.layers.length - 1; i >= 0; i--) { const layer = this.canvas.layers[i];