View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0017989 | Scribus | OS-MacOSX | public | 2026-10-01 03:06 | 2026-10-01 21:03 |
| Reporter | jaca101 | Assigned To | cbradney | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | won't fix | ||
| Platform | MacBook Pro M1 | OS | MacOS Tahoe 26.6.2 | OS Version | 26.6.2 (25G83) |
| Product Version | 1.7.4.svn | ||||
| Summary | 0017989: Dragging an image frame right after editing text moves the image inside the frame instead of the frame | ||||
| Description | While a text frame is being edited (content editing mode), clicking on an image frame and dragging it moves the image inside its frame (changes the image offset) instead of moving the frame. The user has to press Esc or click on empty canvas first to be able to move the image frame. Cause: CanvasMode_Edit::mousePressEvent() handles a click outside the frame being edited by calling SeleItem(); if the newly selected item is a text frame *or an image frame*, it stays in modeEdit (wantNormal = false). CanvasMode_Edit::mouseMoveEvent() then treats any drag on an image frame in modeEdit as content editing and calls moveImageInFrame(). Fix (patch attached, against trunk r27875): keep content editing only when the newly selected item is a text frame. Image frames now follow the same path as shapes and other items: switch to modeNormal and forward the press, so the drag moves the frame. Editing the image offset is still entered by double-clicking the image frame, as before. | ||||
| Steps To Reproduce | 1. Create a text frame and an image frame, and load an image into the image frame. 2. Double-click the text frame and type some text. 3. Without pressing Esc, click on the image frame and drag it. -> Expected: the image frame moves. -> Actual: the image moves inside the frame (its offset changes); the frame stays in place. | ||||
| Additional Information | Environment: macOS 26.6 (Tahoe), Apple Silicon, Qt 6.11.2 (Homebrew), Scribus 1.7.4.svn trunk r27875. The code path is platform independent. Verified with the patch applied: - text editing -> click image frame -> drag: the frame moves; - double-click image frame -> drag: the image offset changes (unchanged behaviour); - text editing -> click another text frame: text editing continues with the cursor at the click position (unchanged behaviour). Note: scribus/canvasmode_edit.cpp uses CRLF line endings; apply with "git apply" or "git am --keep-cr". The patch was prepared with AI assistance (Claude Code) and reviewed and tested by me; it carries a Co-Authored-By trailer. | ||||
| Tags | No tags attached. | ||||
| Attached Files | 0001-Edit-mode-clicking-an-image-frame-from-text-editing-.patch (1,794 bytes)
From 75323140d33830cf67f5ed1920212bda69adc964 Mon Sep 17 00:00:00 2001
From: Satoshi Nakamoto <satoshi.nakamoto.xdos@proton.me>
Date: Thu, 1 Oct 2026 02:43:32 +0200
Subject: [PATCH 1/9] Edit mode: clicking an image frame from text editing
returns to normal mode
When a text frame was being edited and the user clicked on an image frame,
CanvasMode_Edit::mousePressEvent kept modeEdit for the newly selected image
frame. A subsequent drag then went through CanvasMode_Edit::mouseMoveEvent,
which calls moveImageInFrame(), shifting the image offset inside the frame
instead of moving the frame itself.
Only keep content editing when the newly selected item is a text frame.
Image frames now follow the same path as other items: switch to modeNormal
and forward the press, so the drag moves the frame. Image content editing
remains available via double click.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---
scribus/canvasmode_edit.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/scribus/canvasmode_edit.cpp b/scribus/canvasmode_edit.cpp
index 994b28c74..188ff4171 100644
--- a/scribus/canvasmode_edit.cpp
+++ b/scribus/canvasmode_edit.cpp
@@ -614,7 +614,10 @@ void CanvasMode_Edit::mousePressEvent(QMouseEvent *m)
if (SeleItem(m))
{
currItem = m_doc->m_Selection->itemAt(0);
- if ((currItem->isTextFrame()) || (currItem->isImageFrame()))
+ // Only text frames keep content editing when clicked from another frame.
+ // Image frames go back to normal mode so a drag moves the frame rather than
+ // the image offset; image content editing is still entered by double click.
+ if (currItem->isTextFrame())
{
m_view->requestMode(modeEdit);
wantNormal = false;
--
2.54.0 (Apple Git-157)
| ||||
| Patch | No | ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-10-01 03:06 | jaca101 | New Issue | |
| 2026-10-01 03:06 | jaca101 | File Added: 0001-Edit-mode-clicking-an-image-frame-from-text-editing-.patch | |
| 2026-10-01 21:03 | cbradney | Assigned To | => cbradney |
| 2026-10-01 21:03 | cbradney | Status | new => resolved |
| 2026-10-01 21:03 | cbradney | Resolution | open => won't fix |
| 2026-10-01 21:03 | cbradney | Note Added: 0054503 |