diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 732a8b02e..4578038f3 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -1473,6 +1473,7 @@ public class Base { customMenu.putClientProperty("platform", getPlatformUniqueId(targetPlatform)); customMenu.putClientProperty("removeOnWindowDeactivation", true); boardsCustomMenus.add(customMenu); + MenuScroller.setScrollerFor(customMenu); } } } diff --git a/app/src/processing/app/tools/MenuScroller.java b/app/src/processing/app/tools/MenuScroller.java index 9e9aacbca..9acaa8548 100644 --- a/app/src/processing/app/tools/MenuScroller.java +++ b/app/src/processing/app/tools/MenuScroller.java @@ -16,6 +16,7 @@ import java.awt.event.ActionListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.awt.event.KeyEvent; +import java.util.Arrays; /** * A class that provides scrolling capabilities to a long menu dropdown or @@ -539,7 +540,7 @@ public class MenuScroller { } private void setMenuItems() { - menuItems = menu.getComponents(); + menuItems = Arrays.stream(menu.getComponents()).filter(x -> x.isVisible()).toArray(Component[]::new); if (keepVisibleIndex >= topFixedCount && keepVisibleIndex <= menuItems.length - bottomFixedCount && (keepVisibleIndex > firstIndex + scrollCount