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:
parent
0ecafb75e5
commit
414db11d31
|
@ -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_move_handler = NULL;
|
||||||
static Ecore_Event_Handler *_e_menu_mouse_wheel_handler = NULL;
|
static Ecore_Event_Handler *_e_menu_mouse_wheel_handler = NULL;
|
||||||
static Ecore_Event_Handler *_e_menu_window_shape_handler = NULL;
|
static Ecore_Event_Handler *_e_menu_window_shape_handler = NULL;
|
||||||
|
static Eina_Bool _e_menu_lock = EINA_FALSE;
|
||||||
|
|
||||||
static Eina_List *
|
static Eina_List *
|
||||||
_e_active_menus_copy_ref(void)
|
_e_active_menus_copy_ref(void)
|
||||||
|
@ -224,6 +225,7 @@ e_menu_shutdown(void)
|
||||||
eina_hash_free(_e_menu_hash);
|
eina_hash_free(_e_menu_hash);
|
||||||
_e_menu_hash = NULL;
|
_e_menu_hash = NULL;
|
||||||
}
|
}
|
||||||
|
_e_menu_lock = EINA_FALSE;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -761,10 +763,14 @@ e_menu_item_submenu_set(E_Menu_Item *mi, E_Menu *sub)
|
||||||
mi->menu->changed = 1;
|
mi->menu->changed = 1;
|
||||||
if (!!sub == submenu) return;
|
if (!!sub == submenu) return;
|
||||||
if (!mi->bg_object) 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) || (mi->submenu_pre_cb.func))
|
||||||
{
|
{
|
||||||
if (mi->submenu_object) evas_object_del(mi->submenu_object);
|
if (mi->submenu_object) evas_object_del(mi->submenu_object);
|
||||||
o = edje_object_add(mi->menu->evas);
|
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;
|
mi->submenu_object = o;
|
||||||
e_theme_edje_object_set(o, "base/theme/menus",
|
e_theme_edje_object_set(o, "base/theme/menus",
|
||||||
"e/widgets/menu/default/submenu");
|
"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);
|
evas_object_pass_events_set(o, 1);
|
||||||
e_box_pack_end(mi->container_object, o);
|
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 ((mi->submenu) || (mi->submenu_pre_cb.func))
|
||||||
{
|
{
|
||||||
if (e_theme_edje_object_set(mi->bg_object, "base/theme/menus",
|
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;
|
E_Menu_Item *mi;
|
||||||
|
|
||||||
|
if (_e_menu_lock) return;
|
||||||
mi = data;
|
mi = data;
|
||||||
e_menu_item_active_set(mi, 1);
|
e_menu_item_active_set(mi, 1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue