e pointer - on lock push a default pointer and ensure it is ok after

this makes the pointer a default - so no resize animations sticking
around when locked, and on unlock we are restored to default.

@fix
This commit is contained in:
Carsten Haitzler 2020-09-07 01:04:49 +01:00
parent aaefc0cafe
commit 100121bd64
2 changed files with 18 additions and 5 deletions

View File

@ -646,7 +646,7 @@ e_pointer_type_pop(E_Pointer *ptr, void *obj, const char *type)
EINA_LIST_FOREACH_SAFE(ptr->stack, l, ll, stack)
{
if ((stack->obj == obj) &&
if (((stack->obj == obj) || (!obj)) &&
((!type) || (!e_util_strcmp(stack->type, type))))
{
_e_pointer_stack_free(stack);
@ -655,11 +655,21 @@ e_pointer_type_pop(E_Pointer *ptr, void *obj, const char *type)
}
}
if (!ptr->stack)
if ((!obj) && (!type))
{
e_pointer_hide(ptr);
eina_stringshare_replace(&ptr->type, NULL);
return;
if (!ptr->stack)
{
e_pointer_type_push(ptr, ptr, "default");
}
}
else
{
if (!ptr->stack)
{
e_pointer_hide(ptr);
eina_stringshare_replace(&ptr->type, NULL);
return;
}
}
if (!(stack = eina_list_data_get(ptr->stack))) return;

View File

@ -863,6 +863,7 @@ lokker_lock(void)
mlock(edd, sizeof(Lokker_Data));
#endif
e_pointer_type_push(e_comp->pointer, e_comp->pointer, "default");
E_LIST_FOREACH(e_comp->zones, _lokker_popup_add);
total_zone_num = eina_list_count(e_comp->zones);
@ -882,6 +883,8 @@ EINTERN void
lokker_unlock(void)
{
E_FREE_LIST(edd->elock_wnd_list, _lokker_popup_free);
e_pointer_type_pop(e_comp->pointer, e_comp->pointer, "default");
e_pointer_type_pop(e_comp->pointer, NULL, NULL);
E_FREE_LIST(edd->handlers, ecore_event_handler_del);
if (edd->move_handler) ecore_event_handler_del(edd->move_handler);