Erweiterungen

This commit is contained in:
2025-08-31 09:32:54 +02:00
parent 91d7dd9a29
commit 39ca60fd0b

View File

@@ -176,12 +176,7 @@ public class PDFBuilderView extends Div {
inspectorList.setPadding(false); inspectorList.setPadding(false);
inspectorList.setSpacing(false); inspectorList.setSpacing(false);
Button refresh = new Button("Aktualisieren", e -> refreshInspectorFromDom()); inspector.add(title, inspectorList);
refresh.addThemeVariants(ButtonVariant.LUMO_TERTIARY);
refresh.getStyle().set("width", "100%");
refresh.getStyle().set("margin-top", "var(--lumo-space-s)");
inspector.add(title, inspectorList, refresh);
return inspector; return inspector;
} }
@@ -370,7 +365,18 @@ public class PDFBuilderView extends Div {
double dy = y == null ? 0 : Math.max(0, y); double dy = y == null ? 0 : Math.max(0, y);
double dw = w == null ? 10 : Math.max(10, w); double dw = w == null ? 10 : Math.max(10, w);
double dh = h == null ? 10 : Math.max(10, h); double dh = h == null ? 10 : Math.max(10, h);
String js = "(function(){ const el = document.getElementById('" + id + "'); if(!el) return; el.style.left='" + (int)dx + "px'; el.style.top='" + (int)dy + "px'; el.style.width='" + (int)dw + "px'; el.style.height='" + (int)dh + "px'; })()";
// Set flag to indicate programmatic change before updating styles
String js = "(function(){ " +
"const el = document.getElementById('" + id + "'); " +
"if(!el) return; " +
"el._programmaticUpdate = true; " + // Flag to ignore ResizeObserver during programmatic updates
"el.style.left='" + (int)dx + "px'; " +
"el.style.top='" + (int)dy + "px'; " +
"el.style.width='" + (int)dw + "px'; " +
"el.style.height='" + (int)dh + "px'; " +
"setTimeout(() => { el._programmaticUpdate = false; }, 100); " + // Reset flag after DOM updates
"})()";
UI.getCurrent().getPage().executeJs(js); UI.getCurrent().getPage().executeJs(js);
// Serverliste aktualisieren // Serverliste aktualisieren
upsertServerFrame(id, null, null, (int)dx, (int)dy, (int)dw, (int)dh); upsertServerFrame(id, null, null, (int)dx, (int)dy, (int)dw, (int)dh);
@@ -811,7 +817,7 @@ public class PDFBuilderView extends Div {
"frame.addEventListener('mousedown', onDown);\n" + "frame.addEventListener('mousedown', onDown);\n" +
"frame.addEventListener('touchstart', onDown, { passive: false });\n" + "frame.addEventListener('touchstart', onDown, { passive: false });\n" +
"// Größenänderungen beobachten (ResizeObserver)\n" + "// Größenänderungen beobachten (ResizeObserver)\n" +
"if (window.ResizeObserver) { const ro = new ResizeObserver(()=>{ try { if (canvas && canvas.parentElement && canvas.parentElement.$server && canvas.parentElement.$server.onFrameChanged) { canvas.parentElement.$server.onFrameChanged(); } } catch(e){} }); ro.observe(frame); }\n" "if (window.ResizeObserver) { const ro = new ResizeObserver(()=>{ try { if (!frame._programmaticUpdate && canvas && canvas.parentElement && canvas.parentElement.$server && canvas.parentElement.$server.onFrameChanged) { canvas.parentElement.$server.onFrameChanged(); } } catch(e){} }); ro.observe(frame); }\n"
); );
} }