focus fixes
This commit is contained in:
committed by
Raphael Coeffic
parent
0cf7d7b450
commit
9b66ce6b25
+4
-4
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
@@ -296,6 +296,7 @@ void Window::clearLvgl()
|
||||
}
|
||||
|
||||
lv_obj_set_user_data(lvobj, nullptr);
|
||||
lv_group_remove_obj(lvobj);
|
||||
lvobj = nullptr;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user