added function to hide all active menus, always hide menus when desklocking

SVN revision: 81925
This commit is contained in:
Mike Blumenkrantz 2012-12-31 07:47:51 +00:00
parent 2bcb066ccb
commit 1bbcf1abb0
5 changed files with 24 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2012-12-31 Mike Blumenkrantz
* Added function to hide all active menus
* Always hide menus on desklock
2012-12-29 Mike Blumenkrantz
* Fix incorrect config value clamping for window autoraise delay

2
NEWS
View File

@ -3,6 +3,7 @@ Changes since 0.17.0:
Additions:
* Added action to reset filemanager
* Added function to hide all active menus
Deprecations:
*
@ -37,3 +38,4 @@ Fixes:
* Fix construction of variant list for setxkbmap
* Fix border(less) style of internal elm tooltip windows
* Fix incorrect config value clamping for window autoraise delay
* Always hide menus on desklock

View File

@ -218,6 +218,7 @@ e_desklock_show(Eina_Bool suspend)
if (e_config->desklock_use_custom_desklock && e_config->desklock_custom_desklock_cmd && e_config->desklock_custom_desklock_cmd[0])
{
e_menu_hide_all();
_e_custom_desklock_exe_handler =
ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
_e_desklock_cb_custom_desklock_exit, NULL);
@ -264,6 +265,7 @@ e_desklock_show(Eina_Bool suspend)
edd->elock_wnd = ecore_x_window_input_new(e_manager_current_get()->root, 0, 0, 1, 1);
ecore_x_window_show(edd->elock_wnd);
managers = e_manager_list();
e_menu_hide_all();
if (!e_grabinput_get(edd->elock_wnd, 0, edd->elock_wnd))
{
EINA_LIST_FOREACH(managers, l, man)

View File

@ -230,6 +230,20 @@ e_menu_shutdown(void)
return 1;
}
EAPI void
e_menu_hide_all(void)
{
E_Menu *m;
EINA_LIST_FREE(_e_active_menus, m)
{
m->active = 0;
_e_menu_unrealize(m);
m->in_active_list = 0;
e_object_unref(E_OBJECT(m));
}
}
EAPI E_Menu *
e_menu_new(void)
{

View File

@ -161,6 +161,7 @@ struct _E_Menu_Category_Callback
EINTERN int e_menu_init(void);
EINTERN int e_menu_shutdown(void);
EAPI void e_menu_hide_all(void);
EAPI E_Menu *e_menu_new(void);
EAPI void e_menu_activate_key(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir);
EAPI void e_menu_activate_mouse(E_Menu *m, E_Zone *zone, int x, int y, int w, int h, int dir, Ecore_X_Time activate_time);