From b6a4a65b984488b8b56e3bef5310e9735c626fae Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Mon, 29 Sep 2025 17:05:53 +0300 Subject: [PATCH] Can now double click on tablets --- src/InputManager.hpp | 2 ++ src/main.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) 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;