From 251c3e874ad8b2ba13a1c92da8c55b7314e03ef6 Mon Sep 17 00:00:00 2001 From: patrick96 Date: Sat, 23 Sep 2017 16:49:39 +0200 Subject: [PATCH] fix(renderer): Only close a single action Before the renderer would close all active matching actions. That way nested actions would also close their surrounding action block --- src/components/renderer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/renderer.cpp b/src/components/renderer.cpp index 7ee143a0..1fe264e4 100644 --- a/src/components/renderer.cpp +++ b/src/components/renderer.cpp @@ -767,11 +767,16 @@ bool renderer::on(const signals::parser::action_begin& evt) { bool renderer::on(const signals::parser::action_end& evt) { auto btn = evt.cast(); + + /* + * Iterate actions in reverse and find the FIRST active action that matches + */ m_log.trace_x("renderer: action_end(btn=%i)", static_cast(btn)); for (auto action = m_actions.rbegin(); action != m_actions.rend(); action++) { if (action->active && action->align == m_align && action->button == btn) { action->end_x = m_blocks.at(action->align).x; action->active = false; + break; } } return true;