From 4a21f42341a9195a3aab5a0281c47740c8bedbc2 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 26 May 2022 23:05:33 -0400 Subject: Improve menu update logic --- src/CanvasModule.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/CanvasModule.cpp b/src/CanvasModule.cpp index 8d69218..d9e3c9c 100644 --- a/src/CanvasModule.cpp +++ b/src/CanvasModule.cpp @@ -70,18 +70,24 @@ CanvasModule::update_menu() bool has_in = false; bool has_out = false; for (const auto* p : *this) { - if (p->is_input()) { - has_in = true; - } else { - has_out = true; + if (p) { + if (p->is_input()) { + has_in = true; + } else { + has_out = true; + } + + if (has_in && has_out) { + break; + } } + } - if (has_in && has_out) { - _menu->items()[0].show(); // Show "Split" menu item - return; - } + if (has_in && has_out) { + _menu->items()[0].show(); // Show "Split" menu item + } else { + _menu->items()[0].hide(); // Hide "Split" menu item } - _menu->items()[0].hide(); // Hide "Split" menu item } } -- cgit v1.2.1