From 434150919a1bd5f2247a7de1f44664b94952996f Mon Sep 17 00:00:00 2001 From: John Fernandez Date: Tue, 18 Aug 2026 14:03:55 -0400 Subject: [PATCH] Fix Campaign Editor Crash And a little minor cleanup --- qtfred/src/ui/widgets/CampaignMissionGraph.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qtfred/src/ui/widgets/CampaignMissionGraph.cpp b/qtfred/src/ui/widgets/CampaignMissionGraph.cpp index 76a7c46afb9..4e0398b5d14 100644 --- a/qtfred/src/ui/widgets/CampaignMissionGraph.cpp +++ b/qtfred/src/ui/widgets/CampaignMissionGraph.cpp @@ -1154,6 +1154,7 @@ void CampaignMissionGraph::mousePressEvent(QMouseEvent* ev) // Recheck pointer right before using it again if (!n) { + m_drag.active = false; ev->ignore(); return; } @@ -1163,6 +1164,14 @@ void CampaignMissionGraph::mousePressEvent(QMouseEvent* ev) // Build preview edge const auto& missions = m_model->getCampaignMissions(); + + // quickly check for this, as we can drag the end mission sink that is not supposed to be dragged, by accident + if (!SCP_vector_inbounds(missions, m_drag.fromIndex)){ + m_drag.active = false; + ev->ignore(); + return; + } + const auto mode = missions[m_drag.fromIndex].special_mode_hint; m_drag.preview = new detail::EdgeItem(m_drag.fromIndex, /*branchId*/ -1, m_drag.isSpecial, mode, m_style);