diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index 67161343837ac58c320e5942810c0272926715d4..f03b8fa837c947d70dd6cab72f7c2a71e1e1419a 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1714,15 +1714,20 @@ void MissionController::managerVehicleChanged(Vehicle* managerVehicle) void MissionController::_managerVehicleHomePositionChanged(const QGeoCoordinate& homePosition) { if (_visualItems) { + bool currentDirtyBit = dirty(); + MissionSettingsItem* settingsItem = qobject_cast(_visualItems->get(0)); if (settingsItem) { settingsItem->setHomePositionFromVehicle(homePosition); } else { qWarning() << "First item is not MissionSettingsItem"; } - // Don't let this trip the dirty bit. Otherwise plan will keep getting marked dirty if vehicle home - // changes. - _visualItems->setDirty(false); + + if (!currentDirtyBit) { + // Don't let this trip the dirty bit. Otherwise plan will keep getting marked dirty if vehicle home + // changes. + _visualItems->setDirty(false); + } } }