diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java index 8f5c215954..3dc45318bb 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Menu.java @@ -983,6 +983,10 @@ long gtk_show (long widget) { return 0; } sendEvent (SWT.Show); + /* Retry cascade submenu signal hookup once the DROP_DOWN popover is shown. */ + if (GTK.GTK4 && (style & SWT.DROP_DOWN) != 0 && popoverHandle != 0) { + connectCascadeSubMenuSignals(this, popoverHandle); + } if (OS.ubuntu_menu_proxy_get() != 0) { MenuItem[] items = getItems(); for (int i=0; i