Apply InfiniTime LittleVgl changes

This commit is contained in:
Riku Isokoski 2023-02-24 18:11:26 +02:00
parent c6bccf5225
commit 48afc495ab
2 changed files with 30 additions and 9 deletions

View File

@ -268,15 +268,35 @@ void LittleVgl::FlushDisplay(const lv_area_t* area, lv_color_t* color_p) {
vTaskDelay(pdMS_TO_TICKS(3));
}
void LittleVgl::SetNewTouchPoint(uint16_t x, uint16_t y, bool contact) {
tap_x = x;
tap_y = y;
tapped = contact;
void LittleVgl::SetNewTouchPoint(int16_t x, int16_t y, bool contact) {
if (contact) {
if (!isCancelled) {
touchPoint = {x, y};
tapped = true;
}
} else {
if (isCancelled) {
touchPoint = {-1, -1};
tapped = false;
isCancelled = false;
} else {
touchPoint = {x, y};
tapped = false;
}
}
}
void LittleVgl::CancelTap() {
if (tapped) {
isCancelled = true;
touchPoint = {-1, -1};
}
}
bool LittleVgl::GetTouchPadInfo(lv_indev_data_t* ptr) {
ptr->point.x = tap_x;
ptr->point.y = tap_y;
ptr->point.x = touchPoint.x;
ptr->point.y = touchPoint.y;
if (tapped) {
ptr->state = LV_INDEV_STATE_PR;
} else {

View File

@ -24,7 +24,8 @@ namespace Pinetime {
void FlushDisplay(const lv_area_t* area, lv_color_t* color_p);
bool GetTouchPadInfo(lv_indev_data_t* ptr);
void SetFullRefresh(FullRefreshDirections direction);
void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact);
void SetNewTouchPoint(int16_t x, int16_t y, bool contact);
void CancelTap();
bool GetFullRefresh() {
bool returnValue = fullRefresh;
@ -59,9 +60,9 @@ namespace Pinetime {
uint16_t writeOffset = 0;
uint16_t scrollOffset = 0;
uint16_t tap_x = 0;
uint16_t tap_y = 0;
lv_point_t touchPoint = {};
bool tapped = false;
bool isCancelled = false;
};
}
}