add some hacks to prevent spurious mouse movement events from breaking the universe when generating menus

ticket #1492


SVN revision: 76459
This commit is contained in:
Mike Blumenkrantz 2012-09-11 11:55:08 +00:00
parent 0ecafb75e5
commit 414db11d31
1 changed files with 9 additions and 0 deletions

View File

@ -112,6 +112,7 @@ static Ecore_Event_Handler *_e_menu_mouse_up_handler = NULL;
static Ecore_Event_Handler *_e_menu_mouse_move_handler = NULL;
static Ecore_Event_Handler *_e_menu_mouse_wheel_handler = NULL;
static Ecore_Event_Handler *_e_menu_window_shape_handler = NULL;
static Eina_Bool _e_menu_lock = EINA_FALSE;
static Eina_List *
_e_active_menus_copy_ref(void)
@ -224,6 +225,7 @@ e_menu_shutdown(void)
eina_hash_free(_e_menu_hash);
_e_menu_hash = NULL;
}
_e_menu_lock = EINA_FALSE;
return 1;
}
@ -761,10 +763,14 @@ e_menu_item_submenu_set(E_Menu_Item *mi, E_Menu *sub)
mi->menu->changed = 1;
if (!!sub == submenu) return;
if (!mi->bg_object) return;
if (sub) e_object_ref(E_OBJECT(sub));
_e_menu_lock = EINA_TRUE;
if ((mi->submenu) || (mi->submenu_pre_cb.func))
{
if (mi->submenu_object) evas_object_del(mi->submenu_object);
o = edje_object_add(mi->menu->evas);
if (sub && (mi->submenu != sub)) e_object_ref(E_OBJECT(sub));
mi->submenu = sub;
mi->submenu_object = o;
e_theme_edje_object_set(o, "base/theme/menus",
"e/widgets/menu/default/submenu");
@ -784,6 +790,8 @@ e_menu_item_submenu_set(E_Menu_Item *mi, E_Menu *sub)
evas_object_pass_events_set(o, 1);
e_box_pack_end(mi->container_object, o);
}
_e_menu_lock = EINA_FALSE;
if (sub) e_object_unref(E_OBJECT(sub));
if ((mi->submenu) || (mi->submenu_pre_cb.func))
{
if (e_theme_edje_object_set(mi->bg_object, "base/theme/menus",
@ -2730,6 +2738,7 @@ _e_menu_cb_item_in(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED_
{
E_Menu_Item *mi;
if (_e_menu_lock) return;
mi = data;
e_menu_item_active_set(mi, 1);
}