Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_utils.c e_utils.h Log Message: handle circulates =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.365 retrieving revision 1.366 diff -u -3 -r1.365 -r1.366 --- e_border.c 22 Aug 2005 15:46:14 -0000 1.365 +++ e_border.c 23 Aug 2005 03:50:02 -0000 1.366 @@ -2297,9 +2297,10 @@ { // 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); - ecore_x_window_configure(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); return 1; } // printf("##- CONFIGURE REQ 0x%0x mask: %c%c%c%c%c%c%c\n", @@ -2558,7 +2559,21 @@ 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; } =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_utils.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- e_utils.c 30 Jul 2005 08:22:24 -0000 1.22 +++ e_utils.c 23 Aug 2005 03:50:02 -0000 1.23 @@ -373,3 +373,26 @@ } 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; +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_utils.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- e_utils.h 30 Jul 2005 08:19:41 -0000 1.15 +++ e_utils.h 23 Aug 2005 03:50:02 -0000 1.16 @@ -24,6 +24,7 @@ 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 ------------------------------------------------------- SF.Net email is Sponsored by the Better Software Conference & EXPO September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs