From 456379cf84ad25ad75af09ca582c7b75f72af918 Mon Sep 17 00:00:00 2001 From: Diego Iastrubni Date: Sat, 14 Feb 2026 22:06:31 +0200 Subject: [PATCH] qmdiEditor: fix crash on load/save when moving fast (162) If gemini is correct, the cause of the crahses describes in #162 are the `QApplication::processEvents();` used to modify the mouse cursor (otherwise the call has no effect). A side effect, is that the widget might be destroyed due to that call. This should fix it. --- src/widgets/qmdieditor.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/widgets/qmdieditor.cpp b/src/widgets/qmdieditor.cpp index b8d782f..9ac87db 100644 --- a/src/widgets/qmdieditor.cpp +++ b/src/widgets/qmdieditor.cpp @@ -1175,8 +1175,15 @@ bool qmdiEditor::saveFile(const QString &newFileName, bool makeExecutable) { return false; } + QPointer safeThis(this); QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QApplication::processEvents(); + + if (!safeThis) { + QApplication::restoreOverrideCursor(); + return false; + } + auto textStream = QTextStream(&file); auto cursor = QTextCursor(textEditor->document()); auto op = Qutepart::AtomicEditOperation(textEditor); @@ -1363,9 +1370,15 @@ void qmdiEditor::loadContent(bool useBackup) { setModificationsLookupEnabled(false); hideBannerMessage(); setReadOnly(false); + QPointer safeThis(this); QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QApplication::processEvents(); + if (!safeThis) { + QApplication::restoreOverrideCursor(); + return; + } + QFile file; auto loadedFromBackup = false; if (useBackup && savedState.contains(StateConstants::UUID)) {