Fix layer selection bug by sorting hit-test by z-index

This commit is contained in:
Dariusz L
2025-08-02 19:52:08 +02:00
parent e42e08e35d
commit 4df89a793e
2 changed files with 5 additions and 0 deletions

View File

@@ -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

View File

@@ -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];