diff --git a/src/hooks/roofcover/useRoofShapePassivitySetting.js b/src/hooks/roofcover/useRoofShapePassivitySetting.js index 14c648f0..cabcbe90 100644 --- a/src/hooks/roofcover/useRoofShapePassivitySetting.js +++ b/src/hooks/roofcover/useRoofShapePassivitySetting.js @@ -263,7 +263,13 @@ export function useRoofShapePassivitySetting(id) { addPitchTextsByOuterLines() const roof = drawRoofPolygon(wall) addLengthText(roof) - lines.forEach((line) => line.bringToFront()) + + // 외벽선은 WALL/ROOF 폴리곤 바로 위에 배치 — 맨 앞(bringToFront)으로 올리면 + // offset 0인 변에서 같은 좌표에 그려진 보조선의 클릭을 가로채 선택을 막는다 + const polygonTopIdx = canvas + .getObjects() + .reduce((top, obj, idx) => (obj.name === POLYGON_TYPE.WALL || obj.name === POLYGON_TYPE.ROOF ? idx : top), -1) + lines.forEach((line) => canvas.moveTo(line, polygonTopIdx)) canvas.renderAll() } diff --git a/src/hooks/roofcover/useRoofShapeSetting.js b/src/hooks/roofcover/useRoofShapeSetting.js index 58fec3df..be939b1b 100644 --- a/src/hooks/roofcover/useRoofShapeSetting.js +++ b/src/hooks/roofcover/useRoofShapeSetting.js @@ -155,9 +155,15 @@ export function useRoofShapeSetting(id) { }) addPitchText(line) - line.bringToFront() } }) + + // 외벽선은 WALL/ROOF 폴리곤 바로 위에 배치 — 맨 앞(bringToFront)으로 올리면 + // offset 0인 변에서 같은 좌표에 그려진 보조선의 클릭을 가로채 선택을 막는다 + const polygonTopIdx = canvas + .getObjects() + .reduce((top, obj, idx) => (obj.name === POLYGON_TYPE.WALL || obj.name === POLYGON_TYPE.ROOF ? idx : top), -1) + outerLines.forEach((line) => canvas.moveTo(line, polygonTopIdx)) canvas.renderAll() } }, [])