(e)
| 1915 | }); |
| 1916 | |
| 1917 | document.addEventListener('keydown', (e) => { |
| 1918 | if (e.key === 'Escape') { |
| 1919 | if (rotateActive) toggleRotateMode(false); |
| 1920 | if (placeOnFaceActive) togglePlaceOnFace(false); |
| 1921 | if (exclusionTool) setExclusionTool(null); |
| 1922 | licenseOverlay.classList.add('hidden'); |
| 1923 | imprintOverlay.classList.add('hidden'); |
| 1924 | closeStepDialog(); |
| 1925 | _clearShiftLinePreview(); |
| 1926 | } |
| 1927 | }); |
| 1928 | |
| 1929 | document.addEventListener('keyup', (e) => { |
| 1930 | if (e.key === 'Control') _clearShiftLinePreview(); |
| 1931 | }); |
| 1932 | } |
| 1933 | |
| 1934 | // ── Exclusion helpers ───────────────────────────────────────────────────────── |
| 1935 | |
| 1936 | function setSelectionMode(include) { |
| 1937 | if (selectionMode === include) return; |
| 1938 | selectionMode = include; |
| 1939 | // Include-only is never the implicit default, so entering it always counts |
no test coverage detected