View Issue Details

IDProjectCategoryView StatusLast Update
0017937ScribusText Frames / Story Editorpublic2026-09-02 05:59
Reporterqirat Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
PlatformLinuxOSFedora WorkstationOS Version44
Product Version1.7.4.svn 
Summary0017937: Cutting a text selection that spans linked frames leaves the non-focused frame's display stale until clicked
DescriptionThis came up when fixing the 'Ctrl cleaning the text selection bug'.
Steps To Reproduce- Select text with Shift+Right (or Shift+Down/Up) so the selection extends from frame A into linked frame B; cut it (Ctrl+X, Delete, or Edit menu).
- Text is correctly removed from both frames' underlying data, but B's on-screen display still shows the old, now-deleted text as selected — until you click into B, which forces a fresh redraw as a side effect.
Additional InformationReproducing this specific symptom by way of Ctrl+X does require the separate Ctrl-selection-clearing fix to be applied first, since otherwise the selection never survives long enough to attempt the cut (see the Relationship section for Ctrl issue)
Tags#please_test
Attached Files
fix-stale-crossframe-redraw-after-delete-v1.0.patch (1,004 bytes)   
Index: scribus/pageitem_textframe.cpp
===================================================================
--- scribus/pageitem_textframe.cpp	(revision 27773)
+++ scribus/pageitem_textframe.cpp	(working copy)
@@ -4915,6 +4915,18 @@
 	HasSel = false;
 //	m_Doc->updateFrameItems();
 	m_Doc->scMW()->setCopyCutEnabled(false);
+	// The deleted selection may have spanned into a linked neighbour frame -
+	// its own on-screen rendering otherwise stays stale (still showing the
+	// now-removed text as selected) until something else forces a redraw,
+	// e.g. clicking into it. invalidateLayout(true) walks the whole linked
+	// chain in both directions; explicitly updating the immediate neighbours
+	// too matches the same check-then-refresh pattern already used elsewhere
+	// in this file (see slotInvalidateLayout()).
+	invalidateLayout(true);
+	if (m_nextBox)
+		m_nextBox->updateLayout();
+	if (m_backBox)
+		m_backBox->updateLayout();
 }
 
 bool PageItem_TextFrame::checkKeyIsShortcut(QKeyEvent *k)
PatchYes

Activities

qirat

2026-09-02 05:59

reporter   ~0054398

0010977 seems related.

Issue History

Date Modified Username Field Change
2026-08-22 14:41 qirat New Issue
2026-08-22 14:41 qirat Tag Attached: #please_test
2026-08-22 14:41 qirat File Added: fix-stale-crossframe-redraw-report.pdf
2026-08-22 14:41 qirat File Added: fix-stale-crossframe-redraw-after-delete-v1.0.patch
2026-09-02 05:59 qirat Note Added: 0054398