forked from enlightenment/enlightenment
parent
e17deaedff
commit
8167cf314e
|
@ -2297,6 +2297,7 @@ _e_border_cb_window_configure_request(void *data, int ev_type, void *ev)
|
|||
{
|
||||
// printf("generic config request 0x%x 0x%lx %i %i %ix%i %i 0x%x 0x%x...\n",
|
||||
// e->win, e->value_mask, e->x, e->y, e->w, e->h, e->border, e->abovewin, e->detail);
|
||||
if (!e_util_container_window_find(e->win))
|
||||
ecore_x_window_configure(e->win, e->value_mask,
|
||||
e->x, e->y, e->w, e->h, e->border,
|
||||
e->abovewin, e->detail);
|
||||
|
@ -2558,7 +2559,21 @@ _e_border_cb_window_stack_request(void *data, int ev_type, void *ev)
|
|||
e = ev;
|
||||
bd = e_border_find_by_client_window(e->win);
|
||||
// printf("stack req for %0x bd %p\n", e->win, bd);
|
||||
if (!bd) return 1;
|
||||
if (!bd)
|
||||
{
|
||||
if (!e_util_container_window_find(e->win))
|
||||
{
|
||||
if (e->detail == ECORE_X_WINDOW_STACK_ABOVE)
|
||||
ecore_x_window_raise(e->win);
|
||||
else if (e->detail == ECORE_X_WINDOW_STACK_BELOW)
|
||||
ecore_x_window_lower(e->win);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
if (e->detail == ECORE_X_WINDOW_STACK_ABOVE)
|
||||
e_border_raise(bd);
|
||||
else if (e->detail == ECORE_X_WINDOW_STACK_BELOW)
|
||||
e_border_lower(bd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -373,3 +373,26 @@ e_util_menu_item_edje_icon_set(E_Menu_Item *mi, char *name)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
E_Container *
|
||||
e_util_container_window_find(Ecore_X_Window win)
|
||||
{
|
||||
Evas_List *l, *ll;
|
||||
|
||||
for (l = e_manager_list(); l; l = l->next)
|
||||
{
|
||||
E_Manager *man;
|
||||
|
||||
man = l->data;
|
||||
for (ll = man->containers; ll; ll = ll->next)
|
||||
{
|
||||
E_Container *con;
|
||||
|
||||
con = ll->data;
|
||||
if ((con->win == win) || (con->bg_win == win) ||
|
||||
(con->event_win == win))
|
||||
return con;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ EAPI int e_util_edje_icon_list_set(Evas_Object *obj, char *list);
|
|||
EAPI int e_util_menu_item_edje_icon_list_set(E_Menu_Item *mi, char *list);
|
||||
EAPI int e_util_edje_icon_set(Evas_Object *obj, char *name);
|
||||
EAPI int e_util_menu_item_edje_icon_set(E_Menu_Item *mi, char *name);
|
||||
EAPI E_Container *e_util_container_window_find(Ecore_X_Window win);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue