From 0a5cd60fe86149f8958fc546e99f6370cb74950e Mon Sep 17 00:00:00 2001 From: JF Date: Sun, 8 Mar 2020 21:46:25 +0100 Subject: When a full screen refresh is done, apply a vertical scroll during the refresh. This makes the transition from one screen the another one smoother, even if the refresh rate is slow. --- src/DisplayApp/DisplayApp.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'src/DisplayApp/DisplayApp.cpp') diff --git a/src/DisplayApp/DisplayApp.cpp b/src/DisplayApp/DisplayApp.cpp index d7d62dde..3c980dc9 100644 --- a/src/DisplayApp/DisplayApp.cpp +++ b/src/DisplayApp/DisplayApp.cpp @@ -117,19 +117,19 @@ void DisplayApp::Refresh() { OnTouchEvent(); break; case Messages::ButtonPushed: - if(!currentScreen->OnButtonPushed()) { - systemTask.PushMessage(System::SystemTask::Messages::GoToSleep); - } -// currentScreen.reset(nullptr); -// if(toggle) { -// modal.Show(); -//// currentScreen.reset(new Screens::Tile(this)); -// toggle = false; -// } else { -// modal.Hide(); -//// currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController)); -// toggle = true; +// if(!currentScreen->OnButtonPushed()) { +// systemTask.PushMessage(System::SystemTask::Messages::GoToSleep); // } + lvgl.SetFullRefresh(); + lv_disp_set_direction(lv_disp_get_default(), 0); + currentScreen.reset(nullptr); + if(toggle) { + currentScreen.reset(new Screens::Tile(this)); + toggle = false; + } else { + currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController)); + toggle = true; + } break; } @@ -140,6 +140,7 @@ void DisplayApp::RunningState() { // clockScreen.SetCurrentDateTime(dateTimeController.CurrentDateTime()); if(!currentScreen->Refresh()) { + lvgl.SetFullRefresh(); currentScreen.reset(nullptr); switch(nextApp) { case Apps::None: -- cgit v1.2.3-70-g09d2