diff --git a/src/modules/navigator/mission.cpp b/src/modules/navigator/mission.cpp index d9f8b02d1c..adb1e7f0d7 100644 --- a/src/modules/navigator/mission.cpp +++ b/src/modules/navigator/mission.cpp @@ -174,6 +174,17 @@ Mission::on_activation() void Mission::on_active() { + if (_work_item_type == WORK_ITEM_TYPE_PRECISION_LAND) { + // switch out of precision land once landed + if (_navigator->get_land_detected()->landed) { + _navigator->get_precland()->on_inactivation(); + _work_item_type = WORK_ITEM_TYPE_DEFAULT; + + } else { + _navigator->get_precland()->on_active(); + } + } + check_mission_valid(false); /* check if anything has changed */ @@ -263,17 +274,6 @@ Mission::on_active() do_abort_landing(); } - - if (_work_item_type == WORK_ITEM_TYPE_PRECISION_LAND) { - // switch out of precision land once landed - if (_navigator->get_land_detected()->landed) { - _navigator->get_precland()->on_inactivation(); - _work_item_type = WORK_ITEM_TYPE_DEFAULT; - - } else { - _navigator->get_precland()->on_active(); - } - } } bool