From 5bdd9f6e39dd72790dc7cd9b056923e6da4af5c3 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Wed, 30 Nov 2016 20:01:48 +0900 Subject: [PATCH] menu: Keep opening submenus when hovering over main bar The previous situation was that you could hover over a main menu bar item, and see it become hilighted. Click to open the submenu. Classic. Now move over to a second main menu item and the submenu would close, but the second submenu would not open. This behaviour was contrary to pretty much every desktop UI I've used, and really annoyed me. Should we get an elm_config option for that? This is a UI behaviour change. --- src/lib/elementary/elm_menu.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_menu.c b/src/lib/elementary/elm_menu.c index 73ad903536..8134f0042a 100644 --- a/src/lib/elementary/elm_menu.c +++ b/src/lib/elementary/elm_menu.c @@ -501,13 +501,20 @@ _menu_item_activate_cb(void *data, } else { + Eina_Bool was_open = EINA_FALSE; ELM_MENU_DATA_GET(WIDGET(item), sd); EINA_LIST_FOREACH(sd->items, l, eo_item2) { if (eo_item2 != EO_OBJ(item)) - elm_menu_item_selected_set(eo_item2, 0); + { + ELM_MENU_ITEM_DATA_GET(eo_item2, item2); + was_open |= item2->submenu.open; + elm_menu_item_selected_set(eo_item2, 0); + } } elm_interface_atspi_accessible_event_emit(ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN, WIDGET(item), ELM_INTERFACE_ATSPI_SELECTION_EVENT_SELECTION_CHANGED, NULL); + if (sd->menu_bar && was_open) + _menu_item_select_cb(item, NULL, NULL, NULL); } if (_elm_config->atspi_mode) elm_interface_atspi_accessible_state_changed_signal_emit(EO_OBJ(item), ELM_ATSPI_STATE_SELECTED, EINA_TRUE);