From 1b11e24f051362e27aab09745b7004bc415a650f Mon Sep 17 00:00:00 2001 From: Donny Viszneki Date: Sun, 17 Aug 2014 19:35:33 -0700 Subject: [PATCH] MenuWidgetBase: onMenuItem() now destroys popup *after* handleMenuItemClick() to help prevent MenuItem "item" from being invalidated prematurely --- src/dlangui/widgets/menu.d | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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))