diff --git a/radio/src/gui/colorlcd/listbox.cpp b/radio/src/gui/colorlcd/listbox.cpp index bc38fa32d..fdbf10890 100644 --- a/radio/src/gui/colorlcd/listbox.cpp +++ b/radio/src/gui/colorlcd/listbox.cpp @@ -68,13 +68,13 @@ void ListBase::setSelected(int selected) this->selected = selected; if(selectedIndexes.find(selected) != selectedIndexes.end()) { // Already selected -> Deselect it selectedIndexes.erase(selected); - setScrollPositionY(lineHeight * this->selected - lineHeight); + lv_obj_scroll_to_y(lvobj, lineHeight * this->selected - lineHeight, LV_ANIM_OFF); if(_multiSelectHandler != nullptr) _multiSelectHandler(selectedIndexes); invalidate(); } else { // Not Selected -> Select it selectedIndexes.insert(selected); - setScrollPositionY(lineHeight * this->selected - lineHeight); + lv_obj_scroll_to_y(lvobj, lineHeight * this->selected - lineHeight, LV_ANIM_OFF); if (_setValue != nullptr) { _setValue(this->selected); } diff --git a/radio/src/gui/colorlcd/model_curves.cpp b/radio/src/gui/colorlcd/model_curves.cpp index d66655477..d0e432f39 100644 --- a/radio/src/gui/colorlcd/model_curves.cpp +++ b/radio/src/gui/colorlcd/model_curves.cpp @@ -296,10 +296,10 @@ void ModelCurvesPage::pushEditCurve(int index) void ModelCurvesPage::rebuild(FormWindow * window, int8_t focusIndex) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusIndex); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void ModelCurvesPage::editCurve(FormWindow * window, uint8_t curve) diff --git a/radio/src/gui/colorlcd/model_gvars.cpp b/radio/src/gui/colorlcd/model_gvars.cpp index 4a3eeed25..482f1aa02 100644 --- a/radio/src/gui/colorlcd/model_gvars.cpp +++ b/radio/src/gui/colorlcd/model_gvars.cpp @@ -344,10 +344,10 @@ void GVarEditWindow::buildBody(FormWindow * window) void ModelGVarsPage::rebuild(FormWindow * window) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void ModelGVarsPage::build(FormWindow * window) diff --git a/radio/src/gui/colorlcd/model_inputs.cpp b/radio/src/gui/colorlcd/model_inputs.cpp index 67c3af935..982c1a643 100644 --- a/radio/src/gui/colorlcd/model_inputs.cpp +++ b/radio/src/gui/colorlcd/model_inputs.cpp @@ -491,10 +491,10 @@ ModelInputsPage::ModelInputsPage(): void ModelInputsPage::rebuild(FormWindow * window, int8_t focusIndex) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusIndex); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void ModelInputsPage::editInput(FormWindow * window, uint8_t input, uint8_t index) diff --git a/radio/src/gui/colorlcd/model_logical_switches.cpp b/radio/src/gui/colorlcd/model_logical_switches.cpp index 542904308..d951de66b 100644 --- a/radio/src/gui/colorlcd/model_logical_switches.cpp +++ b/radio/src/gui/colorlcd/model_logical_switches.cpp @@ -345,10 +345,10 @@ ModelLogicalSwitchesPage::ModelLogicalSwitchesPage(): void ModelLogicalSwitchesPage::rebuild(FormWindow * window, int8_t focusIndex) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusIndex); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void ModelLogicalSwitchesPage::editLogicalSwitch(FormWindow * window, uint8_t lsIndex) diff --git a/radio/src/gui/colorlcd/model_mixer_scripts.cpp b/radio/src/gui/colorlcd/model_mixer_scripts.cpp index 462d0335a..24ffeee7c 100644 --- a/radio/src/gui/colorlcd/model_mixer_scripts.cpp +++ b/radio/src/gui/colorlcd/model_mixer_scripts.cpp @@ -156,10 +156,10 @@ class ScriptEditWindow : public Page { void rebuildBody(FormWindow * window) { - coord_t scrollPosition = window->getScrollPositionY(); - window->clear(); - buildBody(window); - window->setScrollPositionY(scrollPosition); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); + window->clear(); + buildBody(window); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } }; @@ -228,10 +228,10 @@ ModelMixerScriptsPage::ModelMixerScriptsPage() : void ModelMixerScriptsPage::rebuild(FormWindow * window, int8_t focusIdx) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusIdx); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void ModelMixerScriptsPage::build(FormWindow * window, int8_t focusIdx) diff --git a/radio/src/gui/colorlcd/model_mixes.cpp b/radio/src/gui/colorlcd/model_mixes.cpp index e1482098e..9369e1aa2 100644 --- a/radio/src/gui/colorlcd/model_mixes.cpp +++ b/radio/src/gui/colorlcd/model_mixes.cpp @@ -381,10 +381,10 @@ ModelMixesPage::ModelMixesPage() : void ModelMixesPage::rebuild(FormWindow * window, int8_t focusMixIndex) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusMixIndex); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void ModelMixesPage::editMix(FormWindow * window, uint8_t channel, uint8_t mixIndex) diff --git a/radio/src/gui/colorlcd/model_outputs.cpp b/radio/src/gui/colorlcd/model_outputs.cpp index 9e6e552af..c7e85d21d 100644 --- a/radio/src/gui/colorlcd/model_outputs.cpp +++ b/radio/src/gui/colorlcd/model_outputs.cpp @@ -300,10 +300,10 @@ ModelOutputsPage::ModelOutputsPage() : void ModelOutputsPage::rebuild(FormWindow *window, int8_t focusChannel) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusChannel); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void ModelOutputsPage::build(FormWindow *window, int8_t focusChannel) diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index f35b1f104..78a4f03ca 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -785,8 +785,9 @@ class CategoryEditPage : public PageTab window->setInnerHeight(grid.getWindowHeight()); - if(scrolltobot) - window->setScrollPositionY(y+40); + if(scrolltobot) { + lv_obj_scroll_to_y(window->getLvObj(), y + 40, LV_ANIM_OFF); + } } private: ModelSelectMenu *modelselectmenu; diff --git a/radio/src/gui/colorlcd/model_telemetry.cpp b/radio/src/gui/colorlcd/model_telemetry.cpp index c3cd526a9..c67cdf30e 100644 --- a/radio/src/gui/colorlcd/model_telemetry.cpp +++ b/radio/src/gui/colorlcd/model_telemetry.cpp @@ -432,10 +432,10 @@ void ModelTelemetryPage::checkEvents() void ModelTelemetryPage::rebuild(FormWindow * window, int8_t focusSensorIndex) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusSensorIndex); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); lastKnownIndex = availableTelemetryIndex(); } diff --git a/radio/src/gui/colorlcd/radio_sdmanager.cpp b/radio/src/gui/colorlcd/radio_sdmanager.cpp index 7065123d5..da80e744f 100644 --- a/radio/src/gui/colorlcd/radio_sdmanager.cpp +++ b/radio/src/gui/colorlcd/radio_sdmanager.cpp @@ -106,10 +106,10 @@ RadioSdManagerPage::RadioSdManagerPage() : void RadioSdManagerPage::rebuild(FormWindow * window) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } // TODO elsewhere @@ -454,16 +454,13 @@ void RadioSdManagerPage::build(FormWindow * window) menu->addLine(STR_RENAME_FILE, [=]() { auto few = new FileNameEditWindow(name); few->setCloseHandler([=]() { - //window->clear(); rebuild(window); }); }); menu->addLine(STR_DELETE_FILE, [=]() { f_unlink((const TCHAR*)getFullPath(name)); - // coord_t scrollPosition = window->getScrollPositionY(); window->clear(); build(window); - // window->setScrollPositionY(scrollPosition); }); } return 0; diff --git a/radio/src/gui/colorlcd/special_functions.cpp b/radio/src/gui/colorlcd/special_functions.cpp index d2525f10a..ab6377caa 100644 --- a/radio/src/gui/colorlcd/special_functions.cpp +++ b/radio/src/gui/colorlcd/special_functions.cpp @@ -613,10 +613,10 @@ SpecialFunctionsPage::SpecialFunctionsPage(CustomFunctionData *functions) : void SpecialFunctionsPage::rebuild(FormWindow *window, int8_t focusSpecialFunctionIndex) { - coord_t scrollPosition = window->getScrollPositionY(); + auto scroll_y = lv_obj_get_scroll_y(window->getLvObj()); window->clear(); build(window, focusSpecialFunctionIndex); - window->setScrollPositionY(scrollPosition); + lv_obj_scroll_to_y(window->getLvObj(), scroll_y, LV_ANIM_OFF); } void SpecialFunctionsPage::editSpecialFunction(FormWindow *window, diff --git a/radio/src/gui/colorlcd/view_text.cpp b/radio/src/gui/colorlcd/view_text.cpp index d72013ff6..6fe80ac5f 100644 --- a/radio/src/gui/colorlcd/view_text.cpp +++ b/radio/src/gui/colorlcd/view_text.cpp @@ -344,4 +344,4 @@ void readModelNotes() #endif LED_ERROR_END(); -} \ No newline at end of file +} diff --git a/radio/src/thirdparty/libopenui b/radio/src/thirdparty/libopenui index e6dc11ee0..2435236d7 160000 --- a/radio/src/thirdparty/libopenui +++ b/radio/src/thirdparty/libopenui @@ -1 +1 @@ -Subproject commit e6dc11ee06256add3d719dac3899104629693c97 +Subproject commit 2435236d7186f2365a4dc0a63f1d1f846defb1d0