From 88d8cdadb7ffc99c0cd22f541ec4ad968453a77e Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Sun, 26 Apr 2020 15:38:24 +0100 Subject: [PATCH] AP_Camera: make runcam check for osd menu before entering osd menu --- libraries/AP_Camera/AP_RunCam.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libraries/AP_Camera/AP_RunCam.cpp b/libraries/AP_Camera/AP_RunCam.cpp index 07dab7a451..7bc8d7ffd8 100644 --- a/libraries/AP_Camera/AP_RunCam.cpp +++ b/libraries/AP_Camera/AP_RunCam.cpp @@ -257,8 +257,18 @@ bool AP_RunCam::pre_arm_check(char *failure_msg, const uint8_t failure_msg_len) // OSD update loop void AP_RunCam::update_osd() { + bool use_armed_state_machine = hal.util->get_soft_armed(); +#if OSD_ENABLED + // prevent runcam stick gestures interferring with osd stick gestures + if (!use_armed_state_machine) { + const AP_OSD* osd = AP::osd(); + if (osd != nullptr) { + use_armed_state_machine = !osd->is_readonly_screen(); + } + } +#endif // run a reduced state simulation process when armed - if (AP::arming().is_armed()) { + if (use_armed_state_machine) { update_state_machine_armed(); return; }