summaryrefslogtreecommitdiff
path: root/src/touchhandler/TouchHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/touchhandler/TouchHandler.cpp')
-rw-r--r--src/touchhandler/TouchHandler.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/touchhandler/TouchHandler.cpp b/src/touchhandler/TouchHandler.cpp
index 86dc29f6..160b5e14 100644
--- a/src/touchhandler/TouchHandler.cpp
+++ b/src/touchhandler/TouchHandler.cpp
@@ -29,11 +29,23 @@ void TouchHandler::Process(void* instance) {
void TouchHandler::Work() {
Pinetime::Drivers::Cst816S::TouchInfos info;
+ Pinetime::Drivers::Cst816S::Gestures prevGesture = Pinetime::Drivers::Cst816S::Gestures::None;
while (true) {
vTaskSuspend(taskHandle);
+
info = touchPanel.GetTouchInfo();
+
+ if (info.gesture != Pinetime::Drivers::Cst816S::Gestures::None) {
+ if (prevGesture != info.gesture) {
+ if (info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideDown || info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideLeft ||
+ info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideUp || info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideRight) {
+ prevGesture = info.gesture;
+ }
+ gesture = info.gesture;
+ }
+ }
+
if (systemTask->IsSleeping()) {
- gesture = info.gesture;
systemTask->PushMessage(System::Messages::TouchWakeUp);
} else {
x = info.x;
@@ -42,12 +54,6 @@ void TouchHandler::Work() {
if (!isCancelled) {
lvgl.SetNewTouchPoint(info.x, info.y, true);
}
- if (info.gesture != Pinetime::Drivers::Cst816S::Gestures::None) {
- if (prevGesture != info.gesture) {
- prevGesture = info.gesture;
- gesture = info.gesture;
- }
- }
} else {
if (isCancelled) {
lvgl.SetNewTouchPoint(-1, -1, false);