From e11d4ee7b7acf0562c1b6a7a8af1f980c529a3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Fri, 12 Jan 2024 13:49:52 +0100 Subject: [PATCH] Fixed possible crash after a scripted tool disappears while active For example, when switching away from a project while having a scripted tool selected, the roaming MapEditor::mSelectedTool pointer could end up being referenced in MapEditor::setCurrentDocument, causing a crash. --- NEWS.md | 1 + src/tiled/toolmanager.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 8dab190af8..f5f8069591 100644 --- a/NEWS.md +++ b/NEWS.md @@ -5,6 +5,7 @@ * tmxviewer: Added support for viewing JSON maps (#3866) * Windows: Fixed the support for WebP images (updated to Qt 6.5.3) * Fixed mouse handling issue when zooming while painting (#3863) +* Fixed possible crash after a scripted tool disappears while active ### Tiled 1.10.2 (4 August 2023) diff --git a/src/tiled/toolmanager.cpp b/src/tiled/toolmanager.cpp index ecd885d9c8..c614389990 100644 --- a/src/tiled/toolmanager.cpp +++ b/src/tiled/toolmanager.cpp @@ -148,7 +148,7 @@ void ToolManager::unregisterTool(AbstractTool *tool) it.remove(); if (mSelectedTool == tool) - mSelectedTool = nullptr; + setSelectedTool(nullptr); autoSwitchTool(); }