diff --git a/src/InputManager.hpp b/src/InputManager.hpp index 5d9b239..6686850 100644 --- a/src/InputManager.hpp +++ b/src/InputManager.hpp @@ -74,6 +74,8 @@ struct InputManager { bool isDown = false; bool isEraser = false; float pressure = 0.0f; + int leftClicksSaved = 0; + std::chrono::steady_clock::time_point lastPenLeftClickTime; std::array buttons; } pen; diff --git a/src/main.cpp b/src/main.cpp index 409c41f..17acd1b 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,6 +4,7 @@ #include "sago/platform_folders.h" #include #include +#include #include #include #include @@ -709,7 +710,11 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) { case SDL_EVENT_PEN_DOWN: { mS.m->input.pen.isDown = true; mS.m->input.mouse.leftDown = true; - mS.m->input.mouse.leftClicks = 1; + if((std::chrono::steady_clock::now() - mS.m->input.pen.lastPenLeftClickTime) > std::chrono::milliseconds(300)) + mS.m->input.pen.leftClicksSaved = 0; + mS.m->input.pen.leftClicksSaved++; + mS.m->input.mouse.leftClicks = mS.m->input.pen.leftClicksSaved; + mS.m->input.pen.lastPenLeftClickTime = std::chrono::steady_clock::now(); mS.m->input.pen.isEraser = event->ptouch.eraser; //mS.m->input.mouse.set_pos({event->ptouch.x, event->ptouch.y}); break;