diff --git a/src/dlangui/widgets/menu.d b/src/dlangui/widgets/menu.d index 02526269..29def03b 100644 --- a/src/dlangui/widgets/menu.d +++ b/src/dlangui/widgets/menu.d @@ -527,13 +527,12 @@ class MenuWidgetBase : ListWidget { // copy item action listeners Signal!MenuItemActionHandler onMenuItemActionListenerCopy = onMenuItemActionListener; + handleMenuItemClick(item); + PopupWidget popup = cast(PopupWidget)parent; if (popup) popup.close(); - handleMenuItemClick(item); - - // this pointer now can be invalid - if popup removed if (onMenuItemClickListenerCopy.assigned) if (onMenuItemClickListenerCopy(item))