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

Reply via email to