Erweiterungen

This commit is contained in:
2026-02-23 17:28:31 +01:00
parent 0531c96cc8
commit cfa2c6ac43
2 changed files with 23 additions and 8 deletions

Binary file not shown.

View File

@@ -785,28 +785,43 @@ window.initProfileInvoiceGenerator = function() {
canvas.setAttribute('tabindex', '0');
canvas.addEventListener('keydown', function(e) {
if (!selectedElement) return;
var step = gridSize;
var moved = false;
switch(e.key) {
case 'ArrowUp':
selectedElement.y = Math.max(0, selectedElement.y - step);
if (e.shiftKey) {
selectedElement.y = Math.max(0, selectedElement.y - 1);
} else {
selectedElement.y = Math.max(0, Math.floor((selectedElement.y - 1) / gridSize) * gridSize);
}
moved = true;
e.preventDefault();
break;
case 'ArrowDown':
selectedElement.y = Math.min(basePageHeight - (selectedElement.height || 30), selectedElement.y + step);
if (e.shiftKey) {
selectedElement.y = Math.min(basePageHeight - (selectedElement.height || 30), selectedElement.y + 1);
} else {
selectedElement.y = Math.min(basePageHeight - (selectedElement.height || 30), Math.ceil((selectedElement.y + 1) / gridSize) * gridSize);
}
moved = true;
e.preventDefault();
break;
case 'ArrowLeft':
selectedElement.x = Math.max(0, selectedElement.x - step);
if (e.shiftKey) {
selectedElement.x = Math.max(0, selectedElement.x - 1);
} else {
selectedElement.x = Math.max(0, Math.floor((selectedElement.x - 1) / gridSize) * gridSize);
}
moved = true;
e.preventDefault();
break;
case 'ArrowRight':
selectedElement.x = Math.min(basePageWidth - (selectedElement.width || 100), selectedElement.x + step);
if (e.shiftKey) {
selectedElement.x = Math.min(basePageWidth - (selectedElement.width || 100), selectedElement.x + 1);
} else {
selectedElement.x = Math.min(basePageWidth - (selectedElement.width || 100), Math.ceil((selectedElement.x + 1) / gridSize) * gridSize);
}
moved = true;
e.preventDefault();
break;
@@ -821,7 +836,7 @@ window.initProfileInvoiceGenerator = function() {
e.preventDefault();
break;
}
if (moved) {
draw();
notifyElementSelected(selectedElement);