summaryrefslogtreecommitdiff
path: root/src/DisplayApp/Screens/Modal.cpp
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-03-01 17:20:27 +0100
committerJF <jf@codingfield.com>2020-03-01 17:20:27 +0100
commita1d79e7ecc64aa78299329a2431a76b5c951feca (patch)
tree73f9df6f216db04c6f35b38dc44f224ffc97beeb /src/DisplayApp/Screens/Modal.cpp
parent63c57258821b356dfdfd0c73ab24bb918f23a8ae (diff)
Fix Model that would crash when closing it.
Diffstat (limited to 'src/DisplayApp/Screens/Modal.cpp')
-rw-r--r--src/DisplayApp/Screens/Modal.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/DisplayApp/Screens/Modal.cpp b/src/DisplayApp/Screens/Modal.cpp
index 553b31a0..13bd42fa 100644
--- a/src/DisplayApp/Screens/Modal.cpp
+++ b/src/DisplayApp/Screens/Modal.cpp
@@ -45,13 +45,15 @@ void Modal::Show() {
lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_event_cb(mbox, Modal::mbox_event_cb);
+ mbox->user_data = this;
+
/* Fade the message box in with an animation */
-// lv_anim_t a;
-// lv_anim_init(&a);
-// lv_anim_set_time(&a, 500, 0);
-// lv_anim_set_values(&a, LV_OPA_TRANSP, LV_OPA_COVER);
-// lv_anim_set_exec_cb(&a, obj, (lv_anim_exec_xcb_t)lv_obj_set_opa_scale);
-// lv_anim_create(&a);
+ lv_anim_t a;
+ lv_anim_init(&a);
+ lv_anim_set_time(&a, 500, 0);
+ lv_anim_set_values(&a, LV_OPA_TRANSP, LV_OPA_COVER);
+ lv_anim_set_exec_cb(&a, obj, (lv_anim_exec_xcb_t)lv_obj_set_opa_scale);
+ lv_anim_create(&a);
}
void Modal::Hide() {
@@ -67,11 +69,10 @@ void Modal::mbox_event_cb(lv_obj_t *obj, lv_event_t evt) {
void Modal::OnEvent(lv_obj_t *event_obj, lv_event_t evt) {
if(evt == LV_EVENT_DELETE && event_obj == mbox) {
- /* Delete the parent modal background */
- lv_obj_del_async(lv_obj_get_parent(mbox));
- mbox = NULL; /* happens before object is actually deleted! */
+ Hide();
} else if(evt == LV_EVENT_VALUE_CHANGED) {
/* A button was clicked */
- lv_mbox_start_auto_close(mbox, 100);
+ lv_mbox_start_auto_close(mbox, 0);
+// Hide();
}
}