add border stacking handler as a third line of defense against missionaccomplished.jpg stacking issues

This commit is contained in:
Mike Blumenkrantz 2013-08-22 14:28:12 +01:00
parent 5f6d6f967b
commit 895bf4f78f
1 changed files with 25 additions and 0 deletions

View File

@ -3658,6 +3658,30 @@ _e_comp_bd_unfullscreen(void *data EINA_UNUSED, int type EINA_UNUSED, void *even
return ECORE_CALLBACK_PASS_ON;
}
static Eina_Bool
_e_comp_bd_stack(void *data EINA_UNUSED, int t EINA_UNUSED, E_Event_Border_Stack *ev)
{
if (!ev->border->cw) return ECORE_CALLBACK_RENEW;
switch (ev->type)
{
case E_STACKING_ABOVE:
if (ev->stack && ev->stack->cw)
_e_comp_win_raise_above(ev->border->cw, ev->stack->cw);
else
_e_comp_win_raise(ev->border->cw);
break;
case E_STACKING_BELOW:
if (ev->stack && ev->stack->cw)
_e_comp_win_lower_below(ev->border->cw, ev->stack->cw);
else
_e_comp_win_lower(ev->border->cw);
break;
case E_STACKING_NONE:
default: break;
}
return ECORE_CALLBACK_RENEW;
}
static void
_e_comp_injected_win_focus_out_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
@ -4913,6 +4937,7 @@ e_comp_init(void)
E_LIST_HANDLER_APPEND(handlers, E_EVENT_BORDER_PROPERTY, _e_comp_bd_property, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_BORDER_FULLSCREEN, _e_comp_bd_fullscreen, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_BORDER_UNFULLSCREEN, _e_comp_bd_unfullscreen, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_BORDER_STACK, _e_comp_bd_stack, NULL);
E_EVENT_COMP_SOURCE_VISIBILITY = ecore_event_type_new();
E_EVENT_COMP_SOURCE_ADD = ecore_event_type_new();