Skip to content

Commit 0fc98c8

Browse files
committed
better before_close
1 parent 91520c3 commit 0fc98c8

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

haxe/ui/containers/menus/Menu.hx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,9 @@ class MenuEvents extends haxe.ui.events.Events {
172172
private function onItemClick(event:MouseEvent) {
173173
var item:MenuItem = cast(event.target, MenuItem);
174174
if (!item.expandable) {
175-
var event = new MenuEvent(MenuEvent.MENU_SELECTED);
176-
event.menu = _menu;
177-
event.menuItem = item;
175+
var menuSelectedEvent = new MenuEvent(MenuEvent.MENU_SELECTED);
176+
menuSelectedEvent.menu = _menu;
177+
menuSelectedEvent.menuItem = item;
178178
// we'll add a delay of 100ms here because it "feels nicer" for the menu to
179179
// not just instantly disappear - especially in the case of checkbox menu items
180180
Timer.delay(function() {
@@ -184,19 +184,20 @@ class MenuEvents extends haxe.ui.events.Events {
184184
if (@:privateAccess _menu._isDisposed) {
185185
return;
186186
}
187-
findRootMenu().dispatch(event);
187+
findRootMenu().dispatch(menuSelectedEvent);
188188

189-
if (_menu.menuBar == null) {
189+
//if (_menu.menuBar == null) {
190190
var beforeCloseEvent = new UIEvent(UIEvent.BEFORE_CLOSE);
191191
beforeCloseEvent.relatedComponent = item;
192+
beforeCloseEvent.relatedEvent = event;
192193
findRootMenu().dispatch(beforeCloseEvent);
193194
if (beforeCloseEvent.canceled) {
194195
return;
195196
}
196197

197198
hideMenu();
198199
removeScreenMouseDown();
199-
}
200+
//}
200201
_menu.dispatch(new UIEvent(UIEvent.CLOSE));
201202
}, 100);
202203
}
@@ -439,6 +440,13 @@ class MenuEvents extends haxe.ui.events.Events {
439440
}
440441

441442
if (close) {
443+
var beforeCloseEvent = new UIEvent(UIEvent.BEFORE_CLOSE);
444+
beforeCloseEvent.relatedEvent = event;
445+
findRootMenu().dispatch(beforeCloseEvent);
446+
if (beforeCloseEvent.canceled) {
447+
return;
448+
}
449+
442450
hideMenu();
443451
removeScreenMouseDown();
444452
_menu.dispatch(new UIEvent(UIEvent.CLOSE));

0 commit comments

Comments
 (0)