From 5c699023f5a363cdb4dbf06056bb39045d5ef016 Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Thu, 17 Sep 2026 02:28:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=BC=96=E8=BE=91=E8=83=BD=E5=8A=9B):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=87=E5=AD=97=E6=8B=96=E5=8A=A8=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=EF=BC=8C=E4=BF=AE=E5=A4=8D=E9=80=89=E6=A1=86=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E6=8B=89=E9=95=BF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/webui/ofdgo_edit.js | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/assets/webui/ofdgo_edit.js b/assets/webui/ofdgo_edit.js index 85d6bb3..cd843b8 100644 --- a/assets/webui/ofdgo_edit.js +++ b/assets/webui/ofdgo_edit.js @@ -33,13 +33,10 @@ export function objectTransform(box, dx, dy, corner = "") { } export function textTransform(box, dx, dy, corner) { - if (!corner) return objectTransform(box, dx, dy); - const left = corner.includes("w"), top = corner.includes("n"); - const horizontal = (left ? -dx : dx) / box.width; - const vertical = (top ? -dy : dy) / box.height; - const delta = corner.length === 1 || Math.abs(vertical) > Math.abs(horizontal) ? vertical : horizontal; - const scale = Math.max(Math.min(1, 1 / box.height), 1 + delta); - return { x: corner.length === 1 ? box.width * (1 - scale) / 2 : left ? box.width * (1 - scale) : 0, + if (corner !== "n" && corner !== "s") return objectTransform(box, dx, dy, corner); + const top = corner === "n"; + const scale = Math.max(Math.min(1, 1 / box.height), 1 + (top ? -dy : dy) / box.height); + return { x: box.width * (1 - scale) / 2, y: top ? box.height * (1 - scale) : 0, scale }; } @@ -567,15 +564,6 @@ export class CanvasEditor { } const from = pagePoint(drag.clientX, drag.clientY, drag.rect, drag.item.page, drag.rotation); const to = pagePoint(event.clientX, event.clientY, drag.rect, drag.item.page, drag.rotation); - if (!drag.box && !drag.change && drag.item.type === "TextObject" && (drag.corner === "w" || drag.corner === "e")) { - const scale = (drag.rotation % 180 ? drag.rect.width : drag.rect.height) / drag.item.page.height; - const dx = to.x - from.x, dy = to.y - from.y; - const frame = drag.item.textFrame; - if ((!frame || frame.matrix[0] > 0 && frame.matrix[3] > 0) - && drag.item.height * scale < 28 && Math.abs(dy) * scale >= 3 && Math.abs(dy) > Math.abs(dx) / 2) { - drag.corner = (dy < 0 ? "n" : "s") + drag.corner; - } - } if (drag.item.type === "TextObject" && (drag.corner === "w" || drag.corner === "e")) { if (drag.item.textFrame) { const frame = drag.item.textFrame, [a, b, c, d] = frame.matrix; @@ -653,7 +641,7 @@ export class CanvasEditor { const from = pagePoint(drag.clientX, drag.clientY, drag.rect, drag.page, drag.rotation); const x = Math.max(0, Math.min(from.x, drag.page.width - 1)); const y = Math.max(0, Math.min(from.y, drag.page.height - 1)); - const box = drag.box || { x, y, width: Math.min(80, drag.page.width - x), height: 5 }; + const box = drag.box ? { ...drag.box, wrap: true } : { x, y, width: Math.min(80, drag.page.width - x), height: 5, wrap: false }; drag.preview.remove(); this.setTool(""); this.options.onDrawText(drag.page.index, box, drag.surface, drag.page);