chore(color): fix minor issues when moving controls to select a source (#7782)
Co-authored-by: 3djc <3djc@gh.com> Co-authored-by: philmoz <phil.a.mitchell@gmail.com>
This commit is contained in:
@@ -181,7 +181,7 @@ void SourceChoice::openMenu()
|
||||
#if defined(AUTOSOURCE)
|
||||
menu->setWaitHandler([=]() {
|
||||
int16_t val = getMovedSource(vmin);
|
||||
if (val) {
|
||||
if (val && (!isValueAvailable || isValueAvailable(val))) {
|
||||
tb->resetFilter();
|
||||
menu->select(getIndexFromValue(val));
|
||||
}
|
||||
@@ -190,7 +190,7 @@ void SourceChoice::openMenu()
|
||||
swsrc_t swtch = abs(getMovedSwitch());
|
||||
if (swtch && !IS_SWITCH_MULTIPOS(swtch)) {
|
||||
val = switchToMix(swtch);
|
||||
if (val && (val >= vmin) && (val <= vmax)) {
|
||||
if (val && (val >= vmin) && (val <= vmax) && (!isValueAvailable || isValueAvailable(val))) {
|
||||
tb->resetFilter();
|
||||
menu->select(getIndexFromValue(val));
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ class MenuBody : public TableField
|
||||
void onDrawBegin(uint16_t row, uint16_t col,
|
||||
lv_obj_draw_part_dsc_t* dsc) override
|
||||
{
|
||||
if (lines.size() == 0) return;
|
||||
if (row >= lines.size()) return;
|
||||
|
||||
lv_canvas_t* icon = (lv_canvas_t*)lines[row]->getIcon();
|
||||
if (!icon) return;
|
||||
|
||||
@@ -93,11 +93,9 @@ MenuToolbar::~MenuToolbar() { lv_group_del(group); }
|
||||
|
||||
void MenuToolbar::resetFilter()
|
||||
{
|
||||
if (lv_group_get_focused(group) != lvobj) {
|
||||
lv_group_focus_obj(lvobj);
|
||||
choice->fillMenu(menu);
|
||||
menu->setTitle(choice->getTitle());
|
||||
}
|
||||
// Nothing to do if no filter is active
|
||||
if (allBtn && !allBtn->checked())
|
||||
lv_event_send(allBtn->getLvObj(), LV_EVENT_CLICKED, nullptr);
|
||||
}
|
||||
|
||||
void MenuToolbar::nextFilter()
|
||||
|
||||
@@ -197,7 +197,7 @@ void TableField::setColumnWidth(uint16_t col, coord_t w)
|
||||
void TableField::select(uint16_t row, uint16_t col, bool force)
|
||||
{
|
||||
lv_table_t* table = (lv_table_t*)lvobj;
|
||||
if (!force && table->row_act == row && table->col_act == row) return;
|
||||
if (!force && table->row_act == row && table->col_act == col) return;
|
||||
|
||||
if (row >= table->row_cnt || col >= table->col_cnt) {
|
||||
table->col_act = LV_TABLE_CELL_NONE;
|
||||
@@ -215,6 +215,8 @@ void TableField::adjustScroll()
|
||||
{
|
||||
lv_table_t* table = (lv_table_t*)lvobj;
|
||||
|
||||
if (table->row_act >= table->row_cnt) return;
|
||||
|
||||
// only vertical scroll for now
|
||||
lv_coord_t h_before = 0;
|
||||
for (uint16_t i = 0; i < table->row_act; i++) h_before += table->row_h[i];
|
||||
|
||||
Reference in New Issue
Block a user