From 713ceb8454f634cb1c08fc044d862d2c371c3d07 Mon Sep 17 00:00:00 2001
From: Pascal Engeler <engelerp@phys.ethz.ch>
Date: Thu, 12 Aug 2021 21:36:51 +0200
Subject: [PATCH] Added dangling block catch

---
 src/slim_blockchain_handler.cpp | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/slim_blockchain_handler.cpp b/src/slim_blockchain_handler.cpp
index 09a4de1..2b47907 100644
--- a/src/slim_blockchain_handler.cpp
+++ b/src/slim_blockchain_handler.cpp
@@ -6,14 +6,15 @@
 
 
 void SlimBlockchainHandler::update(Toolbox& tb) {
+	bool skip_events = false;
 	//can't be dragging if mstate changes
 	if (previous_mstate_ != tb.m_state) {
 		clear_blocks_();
+		skip_events = true;
 	}
 	//update tracked mstate
 	previous_mstate_ = tb.m_state;
 
-	bool skip_events = false;
 
 	/*Handle Messages*/
 	for (Message& m : tb.mailbox) {
@@ -31,6 +32,12 @@ void SlimBlockchainHandler::update(Toolbox& tb) {
 		}
 	}
 
+	//Catch dangling Blocks, if no touches, then no dragging
+	if (!skip_events && dragpairs_.size() > 0 && tb.current_touchIDs.size() == 0) {
+		clear_blocks_();
+		skip_events = true;
+	}
+
 	if (tb.m_state == static_cast<int>(MSTATE::IMMEDIATE) && !skip_events) {
 		/*Handle Events*/
 		for (Pevent& pev : tb.events) {
-- 
GitLab