LVGL: Add SetNewTap to generate tap events
This function sends a tap down and tap up event to LVGL, despite being called only once.
This commit is contained in:
parent
825c7cebf5
commit
52b3c3efcc
@ -33,6 +33,8 @@ namespace Pinetime {
|
|||||||
}
|
}
|
||||||
void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact) {
|
void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact) {
|
||||||
}
|
}
|
||||||
|
void SetNewTap(uint16_t x, uint16_t y) {
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,6 +180,14 @@ void LittleVgl::SetNewTouchPoint(uint16_t x, uint16_t y, bool contact) {
|
|||||||
tap_x = x;
|
tap_x = x;
|
||||||
tap_y = y;
|
tap_y = y;
|
||||||
tapped = contact;
|
tapped = contact;
|
||||||
|
simulate_tap_release = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LittleVgl::SetNewTap(uint16_t x, uint16_t y) {
|
||||||
|
tap_x = x;
|
||||||
|
tap_y = y;
|
||||||
|
tapped = true;
|
||||||
|
simulate_tap_release = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool LittleVgl::GetTouchPadInfo(lv_indev_data_t* ptr) {
|
bool LittleVgl::GetTouchPadInfo(lv_indev_data_t* ptr) {
|
||||||
@ -187,6 +195,12 @@ bool LittleVgl::GetTouchPadInfo(lv_indev_data_t* ptr) {
|
|||||||
ptr->point.y = tap_y;
|
ptr->point.y = tap_y;
|
||||||
if (tapped) {
|
if (tapped) {
|
||||||
ptr->state = LV_INDEV_STATE_PR;
|
ptr->state = LV_INDEV_STATE_PR;
|
||||||
|
if (simulate_tap_release) {
|
||||||
|
// If a tap consists of only a single event, enqueue a synthetic release state update
|
||||||
|
tapped = false;
|
||||||
|
simulate_tap_release = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ptr->state = LV_INDEV_STATE_REL;
|
ptr->state = LV_INDEV_STATE_REL;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ namespace Pinetime {
|
|||||||
bool GetTouchPadInfo(lv_indev_data_t* ptr);
|
bool GetTouchPadInfo(lv_indev_data_t* ptr);
|
||||||
void SetFullRefresh(FullRefreshDirections direction);
|
void SetFullRefresh(FullRefreshDirections direction);
|
||||||
void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact);
|
void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact);
|
||||||
|
void SetNewTap(uint16_t x, uint16_t y);
|
||||||
|
|
||||||
bool GetFullRefresh() {
|
bool GetFullRefresh() {
|
||||||
bool returnValue = fullRefresh;
|
bool returnValue = fullRefresh;
|
||||||
@ -62,6 +63,7 @@ namespace Pinetime {
|
|||||||
uint16_t tap_x = 0;
|
uint16_t tap_x = 0;
|
||||||
uint16_t tap_y = 0;
|
uint16_t tap_y = 0;
|
||||||
bool tapped = false;
|
bool tapped = false;
|
||||||
|
bool simulate_tap_release = false;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user