summaryrefslogtreecommitdiff
path: root/src/displayapp/DisplayApp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/DisplayApp.cpp')
-rw-r--r--src/displayapp/DisplayApp.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp
index d81a7993..eb3ebbca 100644
--- a/src/displayapp/DisplayApp.cpp
+++ b/src/displayapp/DisplayApp.cpp
@@ -44,6 +44,8 @@
#include "displayapp/screens/settings/SettingSteps.h"
#include "displayapp/screens/settings/SettingPineTimeStyle.h"
+#include "libs/lv_conf.h"
+
using namespace Pinetime::Applications;
using namespace Pinetime::Applications::Display;
@@ -115,6 +117,7 @@ uint32_t count = 0;
bool toggle = true;
void DisplayApp::Refresh() {
TickType_t queueTimeout;
+ TickType_t delta;
switch (state) {
case States::Idle:
IdleState();
@@ -122,7 +125,11 @@ void DisplayApp::Refresh() {
break;
case States::Running:
RunningState();
- queueTimeout = 20;
+ delta = xTaskGetTickCount() - lastWakeTime;
+ if (delta > LV_DISP_DEF_REFR_PERIOD) {
+ delta = LV_DISP_DEF_REFR_PERIOD;
+ }
+ queueTimeout = LV_DISP_DEF_REFR_PERIOD - delta;
break;
default:
queueTimeout = portMAX_DELAY;
@@ -130,7 +137,9 @@ void DisplayApp::Refresh() {
}
Messages msg;
- if (xQueueReceive(msgQueue, &msg, queueTimeout)) {
+ bool messageReceived = xQueueReceive(msgQueue, &msg, queueTimeout);
+ lastWakeTime = xTaskGetTickCount();
+ if (messageReceived) {
switch (msg) {
case Messages::GoToSleep:
brightnessController.Backup();