summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-05-26 23:05:33 -0400
committerDavid Robillard <d@drobilla.net>2022-05-26 23:06:12 -0400
commit4a21f42341a9195a3aab5a0281c47740c8bedbc2 (patch)
tree15a111a3ad374e4ada92ae3d629cf7e2696916ea /src
parentf721aeb097bc5c6be69e270192480b8143b2d7e9 (diff)
downloadpatchage-4a21f42341a9195a3aab5a0281c47740c8bedbc2.tar.gz
patchage-4a21f42341a9195a3aab5a0281c47740c8bedbc2.tar.bz2
patchage-4a21f42341a9195a3aab5a0281c47740c8bedbc2.zip
Improve menu update logic
Diffstat (limited to 'src')
-rw-r--r--src/CanvasModule.cpp24
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
}
}