From a5b783a03a84f790fa4d96ac01935d7dfc1a023d Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Fri, 2 Jul 2021 20:57:21 +0200 Subject: [PATCH] Allow -1 as btnmatrix value to clear selection --- src/hasp/hasp_attribute.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/hasp/hasp_attribute.cpp b/src/hasp/hasp_attribute.cpp index ce5f284e..d078aff6 100644 --- a/src/hasp/hasp_attribute.cpp +++ b/src/hasp/hasp_attribute.cpp @@ -1370,18 +1370,22 @@ static hasp_attribute_type_t attribute_common_val(lv_obj_t* obj, int32_t& val, b if(!lv_btnmatrix_get_one_check(obj)) return HASP_ATTR_TYPE_NOT_FOUND; if(update) { - if(val < 0 || val >= my_btnmatrix_get_count(obj)) { + if(val < -1 || val >= my_btnmatrix_get_count(obj)) { LOG_WARNING(TAG_ATTR, F("Invalid index %d"), val); } else { lv_btnmatrix_clear_btn_ctrl_all(obj, LV_BTNMATRIX_CTRL_CHECK_STATE); - lv_btnmatrix_set_btn_ctrl(obj, val, LV_BTNMATRIX_CTRL_CHECK_STATE); - lv_btnmatrix_ext_t* ext = (lv_btnmatrix_ext_t*)lv_obj_get_ext_attr(obj); - ext->btn_id_act = val; + if(val == -1) { + ext->btn_id_act = LV_BTNMATRIX_BTN_NONE; + } else { + lv_btnmatrix_set_btn_ctrl(obj, val, LV_BTNMATRIX_CTRL_CHECK_STATE); + ext->btn_id_act = val; + } } } else { - val = lv_btnmatrix_get_active_btn(obj); + uint16_t btn_id_act = lv_btnmatrix_get_active_btn(obj); + val = (btn_id_act == LV_BTNMATRIX_BTN_NONE) ? -1 : btn_id_act; } break;