focus fixes

This commit is contained in:
Raphael Coeffic
2022-06-11 15:13:11 +02:00
committed by Raphael Coeffic
parent 0cf7d7b450
commit 9b66ce6b25
6 changed files with 11 additions and 13 deletions
+4 -4
View File
@@ -45,11 +45,11 @@ Button::Button(Window* parent, const rect_t& rect,
void Button::onPress()
{
bool check = (pressHandler && pressHandler());
windowFlags = check ? windowFlags | BUTTON_CHECKED : windowFlags & ~BUTTON_CHECKED;
if(lvobj == nullptr)
return;
windowFlags =
check ? windowFlags | BUTTON_CHECKED : windowFlags & ~BUTTON_CHECKED;
if (lvobj == nullptr) return;
if (! (windowFlags & BUTTON_CHECKED))
if (!(windowFlags & BUTTON_CHECKED))
lv_obj_clear_state(lvobj, LV_STATE_CHECKED);
else
lv_obj_add_state(lvobj, LV_STATE_CHECKED);
+1 -1
View File
@@ -81,7 +81,7 @@ class Button: public FormField
std::function<uint8_t(void)> pressHandler;
std::function<void(void)> checkHandler;
void onPress();
virtual void onPress();
};
+3 -6
View File
@@ -88,12 +88,9 @@ void FormField::setFocus(uint8_t flag, Window * from)
{
if (enabled) {
Window::setFocus(flag, from);
// if(lvobj != nullptr)
// {
// lv_group_focus_freeze(inputGroup, false);
// lv_group_focus_obj(lvobj);
// lv_group_focus_freeze(inputGroup, true);
// }
if(lvobj != nullptr) {
lv_group_focus_obj(lvobj);
}
}
else {
if (flag == SET_FOCUS_BACKWARD) {
+1
View File
@@ -134,6 +134,7 @@ void MenuBody::setIndex(int index)
lv_obj_add_state(btn, LV_STATE_CHECKED);
lv_obj_add_state(btn, LV_STATE_FOCUS_KEY);
lv_obj_scroll_to_view(btn, LV_ANIM_OFF);
lv_group_focus_obj(btn);
}
}
}
+1 -2
View File
@@ -35,10 +35,9 @@ void ModalWindow::deleteLater(bool detach, bool trash)
{
if (_deleted)
return;
Layer::pop(this);
Window::deleteLater(detach, trash);
Layer::pop(this);
}
#if defined(HARDWARE_TOUCH)
+1
View File
@@ -296,6 +296,7 @@ void Window::clearLvgl()
}
lv_obj_set_user_data(lvobj, nullptr);
lv_group_remove_obj(lvobj);
lvobj = nullptr;
}