summaryrefslogtreecommitdiff
path: root/src/touchhandler
diff options
context:
space:
mode:
Diffstat (limited to 'src/touchhandler')
-rw-r--r--src/touchhandler/TouchHandler.cpp20
-rw-r--r--src/touchhandler/TouchHandler.h1
2 files changed, 13 insertions, 8 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);
diff --git a/src/touchhandler/TouchHandler.h b/src/touchhandler/TouchHandler.h
index 7999e00a..37ef5af2 100644
--- a/src/touchhandler/TouchHandler.h
+++ b/src/touchhandler/TouchHandler.h
@@ -37,7 +37,6 @@ namespace Pinetime {
Pinetime::Drivers::Cst816S& touchPanel;
Pinetime::Components::LittleVgl& lvgl;
Pinetime::Drivers::Cst816S::Gestures gesture;
- Pinetime::Drivers::Cst816S::Gestures prevGesture;
bool isCancelled = false;
uint8_t x, y;
};