forked from enlightenment/efl
parent
a7282b534b
commit
6f39ca801f
|
@ -98,16 +98,31 @@ evas_key_grab_find(Evas_Object *obj, const char *keyname, Evas_Modifier_Mask mod
|
||||||
void
|
void
|
||||||
evas_object_grabs_cleanup(Evas_Object *obj)
|
evas_object_grabs_cleanup(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
while (obj->grabs)
|
if (obj->layer->evas->walking_grabs)
|
||||||
{
|
{
|
||||||
Evas_Key_Grab *g;
|
Evas_List *l;
|
||||||
|
|
||||||
g = obj->grabs->data;
|
for (l = obj->grabs; l; l = l->next)
|
||||||
if (g->keyname) free(g->keyname);
|
{
|
||||||
free(g);
|
Evas_Key_Grab *g;
|
||||||
obj->layer->evas->grabs = evas_list_remove(obj->layer->evas->grabs, g);
|
|
||||||
obj->grabs = evas_list_remove(obj->grabs, g);
|
g = l->data;
|
||||||
}
|
g->delete_me = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while (obj->grabs)
|
||||||
|
{
|
||||||
|
Evas_Key_Grab *g;
|
||||||
|
|
||||||
|
g = obj->grabs->data;
|
||||||
|
if (g->keyname) free(g->keyname);
|
||||||
|
free(g);
|
||||||
|
obj->layer->evas->grabs = evas_list_remove(obj->layer->evas->grabs, g);
|
||||||
|
obj->grabs = evas_list_remove(obj->grabs, g);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -119,6 +134,7 @@ evas_key_grab_free(Evas_Object *obj, const char *keyname, Evas_Modifier_Mask mod
|
||||||
g = evas_key_grab_find(obj, keyname, modifiers, not_modifiers, 0);
|
g = evas_key_grab_find(obj, keyname, modifiers, not_modifiers, 0);
|
||||||
if (!g) return;
|
if (!g) return;
|
||||||
g->object->grabs = evas_list_remove(g->object->grabs, g);
|
g->object->grabs = evas_list_remove(g->object->grabs, g);
|
||||||
|
obj->layer->evas->grabs = evas_list_remove(obj->layer->evas->grabs, g);
|
||||||
if (g->keyname) free(g->keyname);
|
if (g->keyname) free(g->keyname);
|
||||||
free(g);
|
free(g);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue