From 513efa083341ce2a1b0a894c7d038e8d45256a5d Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 30 Sep 2026 09:20:41 +0200 Subject: [PATCH] Improve drag-and-drop in SenderPdfImageEditor Replaced the old drag-and-drop implementation with a custom solution using mouse events for better control and precision. Added `_isDragging` state and dynamic cursor updates to enhance user feedback during drag operations. Introduced grab offset calculations to ensure accurate field positioning relative to the pointer. Added `OnEditorMouseUp` to reset the drag state and `GetPageSize` to retrieve page dimensions, defaulting to A4 if unavailable. Updated `envelope-editor.js` to include `pageNumber` in `getClickCoordsOnPdfPage` and removed the obsolete `getDropCoordsOnPage` function. Enhanced `EditorCoords` to include `PageNumber` for improved page identification. --- .../PdfEditor/SenderPdfImageEditor.razor | 83 +++++++++++++------ .../wwwroot/js/envelope-editor.js | 29 +------ 2 files changed, 59 insertions(+), 53 deletions(-) diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor index 3cc34bb7..8d0cb290 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server.Client/Components/PdfEditor/SenderPdfImageEditor.razor @@ -5,8 +5,11 @@ @inject IJSRuntime JSRuntime
+ style="cursor: @(IsPlacementMode ? "crosshair" : (_isDragging ? "grabbing" : "default"));" + @onclick="HandleClickAsync" + @onmousemove="OnEditorMouseMoveAsync" + @onmouseup="OnEditorMouseUp" + @onmouseleave="OnEditorMouseUp"> @if (PageCount <= 0) {
@L("SenderEditor_NoPagesToDisplay", "Keine Seiten zur Anzeige verfügbar.")
@@ -36,11 +39,7 @@ data-page-height-pt="@heightPt">
+ style="@( _isDragging ? "cursor:grabbing;" : string.Empty)"> @if (!string.IsNullOrWhiteSpace(pagePreview?.ImageDataUrl)) { @field.ReceiverName