From aae90a8fb7bbab52b70964c9f694e29b7d13ee56 Mon Sep 17 00:00:00 2001 From: Pascal Engeler <engelerp@phys.ethz.ch> Date: Thu, 12 Aug 2021 21:35:51 +0200 Subject: [PATCH] Added dangling drawer catch --- src/drawing_handler.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/drawing_handler.cpp b/src/drawing_handler.cpp index e4a73bb..1b61c7f 100644 --- a/src/drawing_handler.cpp +++ b/src/drawing_handler.cpp @@ -42,6 +42,7 @@ DrawingHandler::~DrawingHandler() { glDeleteBuffers(1, &vbo_); glDeleteFramebuffers(1, &fbo_); } + void DrawingHandler::update(Toolbox& tb) { if (previous_mstate_ != tb.m_state) { drawpairs_.clear(); @@ -54,7 +55,6 @@ void DrawingHandler::update(Toolbox& tb) { DRAWERMESSAGE message = std::get<DRAWERMESSAGE>(m.message); switch (message) { case DRAWERMESSAGE::CLEAR: - /*Clearing the damping is taken care of by the WaveHandler*/ drawpairs_.clear(); m.handled = true; break; @@ -63,6 +63,10 @@ void DrawingHandler::update(Toolbox& tb) { } } } + /*Catch dangling Drawers, no touches means no drawers*/ + if (drawpairs_.size() > 0 && tb.current_touchIDs.size() == 0) { + drawpairs_.clear(); + } /*We can return here if MSTATE is not interesting*/ if (tb.m_state != static_cast<int>(MSTATE::DRAW) && tb.m_state != static_cast<int>(MSTATE::ERASE)) { return; -- GitLab