diff --git a/src/slim_blockchain_handler.cpp b/src/slim_blockchain_handler.cpp index 09a4de19b5584db8c1f7655253d1b722d6de4db1..2b479074d9a40a75e498e84c6eb4b145678f0a6b 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) {