diff options
author | David Robillard <d@drobilla.net> | 2022-05-26 23:05:33 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-05-26 23:06:12 -0400 |
commit | 4a21f42341a9195a3aab5a0281c47740c8bedbc2 (patch) | |
tree | 15a111a3ad374e4ada92ae3d629cf7e2696916ea | |
parent | f721aeb097bc5c6be69e270192480b8143b2d7e9 (diff) | |
download | patchage-4a21f42341a9195a3aab5a0281c47740c8bedbc2.tar.gz patchage-4a21f42341a9195a3aab5a0281c47740c8bedbc2.tar.bz2 patchage-4a21f42341a9195a3aab5a0281c47740c8bedbc2.zip |
Improve menu update logic
-rw-r--r-- | src/CanvasModule.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
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 } } |