Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_intl.c e_main.c e_place.c 


Log Message:


was wrokign on intl stuff but got distracted by optimising. will come back to
intl. optimised some code paths. e_place.c is evil. the smart place function
NEEDS speeding up. this may mean a re-think of how it works. not sure.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.226
retrieving revision 1.227
diff -u -3 -r1.226 -r1.227
--- e_border.c  26 May 2005 12:38:53 -0000      1.226
+++ e_border.c  28 May 2005 05:03:25 -0000      1.227
@@ -109,9 +109,12 @@
 
 static int  _e_border_cb_focus_fix(void *data);
 
+static char *_e_border_winid_str_get(Ecore_X_Window win);
+    
 /* local subsystem globals */
 static Evas_List *handlers = NULL;
 static Evas_List *borders = NULL;
+static Evas_Hash *borders_hash = NULL;
 static E_Border  *focused = NULL;
 
 static E_Border    *resize = NULL;
@@ -354,7 +357,9 @@
    bd->desk = e_desk_current_get(bd->zone);
    e_container_border_add(bd);
    borders = evas_list_append(borders, bd);
-
+   borders_hash = evas_hash_add(borders_hash, 
_e_border_winid_str_get(bd->client.win), bd);
+   borders_hash = evas_hash_add(borders_hash, 
_e_border_winid_str_get(bd->bg_win), bd);
+   borders_hash = evas_hash_add(borders_hash, 
_e_border_winid_str_get(bd->win), bd);
    managed = 1;
    ecore_x_window_prop_card32_set(win, E_ATOM_MANAGED, &managed, 1);
    ecore_x_window_prop_card32_set(win, E_ATOM_CONTAINER, 
&bd->zone->container->num, 1);
@@ -1138,58 +1143,24 @@
 E_Border *
 e_border_find_by_client_window(Ecore_X_Window win)
 {
-   Evas_List *l;
-
-   for (l = borders; l; l = l->next)
-     {
-       E_Border *bd;
-
-       bd = l->data;
-       if (bd->client.win == win)
-         {
-            if (!e_object_is_del(E_OBJECT(bd)))
-              return bd;
-         }
-     }
+   E_Border *bd;
+   
+   bd = evas_hash_find(borders_hash, _e_border_winid_str_get(win));
+   if ((bd) && (!e_object_is_del(E_OBJECT(bd))))
+     return bd;
    return NULL;
 }
 
 E_Border *
 e_border_find_by_frame_window(Ecore_X_Window win)
 {
-   Evas_List *l;
-
-   for (l = borders; l; l = l->next)
-     {
-       E_Border *bd;
-
-       bd = l->data;
-       if (bd->bg_win == win)
-         {
-            if (!e_object_is_del(E_OBJECT(bd)))
-              return bd;
-         }
-     }
-   return NULL;
+   return e_border_find_by_client_window(win);
 }
 
 E_Border *
 e_border_find_by_window(Ecore_X_Window win)
 {
-   Evas_List *l;
-
-   for (l = borders; l; l = l->next)
-     {
-       E_Border *bd;
-
-       bd = l->data;
-       if (bd->win == win)
-         {
-            if (!e_object_is_del(E_OBJECT(bd)))
-              return bd;
-         }
-     }
-   return NULL;
+   return e_border_find_by_client_window(win);
 }
 
 E_Border *
@@ -1484,6 +1455,9 @@
    ecore_x_window_del(bd->win);
 
    e_container_border_remove(bd);
+   borders_hash = evas_hash_del(borders_hash, 
_e_border_winid_str_get(bd->client.win), bd);
+   borders_hash = evas_hash_del(borders_hash, 
_e_border_winid_str_get(bd->bg_win), bd);
+   borders_hash = evas_hash_del(borders_hash, 
_e_border_winid_str_get(bd->win), bd);
    borders = evas_list_remove(borders, bd);
 
    free(bd);
@@ -4351,3 +4325,23 @@
      }
    return 1;
 }
+
+static char *
+_e_border_winid_str_get(Ecore_X_Window win)
+{
+   const char *vals = "qWeRtYuIoP5-$&<~";
+   static char id[9];
+   unsigned int val;
+   
+   val = (unsigned int)win;
+   id[0] = vals[(val >> 28) & 0xf];
+   id[1] = vals[(val >> 24) & 0xf];
+   id[2] = vals[(val >> 20) & 0xf];
+   id[3] = vals[(val >> 16) & 0xf];
+   id[4] = vals[(val >> 12) & 0xf];
+   id[5] = vals[(val >>  8) & 0xf];
+   id[6] = vals[(val >>  4) & 0xf];
+   id[7] = vals[(val      ) & 0xf];
+   id[8] = 0;
+   return id;
+}
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_intl.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -3 -r1.29 -r1.30
--- e_intl.c    19 May 2005 09:23:54 -0000      1.29
+++ e_intl.c    28 May 2005 05:03:26 -0000      1.30
@@ -71,9 +71,32 @@
    return 1;
 }
 
+/* FIXME: finish this */
+static Evas_List *
+_e_intl_dir_scan(char *dir)
+{
+   Ecore_List *files;
+   char *file;
+   
+   files = ecore_file_ls(dir);
+   if (!files) return NULL;
+   
+   ecore_list_goto_first(files);
+   while ((file = ecore_list_current(files)))
+     {
+       free(file);
+       ecore_list_remove(files);
+       ecore_list_next(files);
+     }
+   return NULL;
+}
+
 void
 e_intl_language_set(const char *lang)
 {
+   /* 1 list ~/.e/e/locale contents */
+   /* 2 list LOCALE_DIR contents */
+   
    /* FIXME: determine if in user or system locale dir */
    if (_e_intl_language) free(_e_intl_language);
    if (!lang) lang = getenv("LANG");
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -3 -r1.86 -r1.87
--- e_main.c    27 May 2005 10:04:53 -0000      1.86
+++ e_main.c    28 May 2005 05:03:26 -0000      1.87
@@ -566,7 +566,8 @@
        "%s/.e/e/applications/restart",
        "%s/.e/e/applications/trash",
        "%s/.e/e/modules",
-       "%s/.e/e/config"
+       "%s/.e/e/config",
+       "%s/.e/e/locale"
      };
    int i;
    
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_place.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- e_place.c   13 May 2005 14:01:05 -0000      1.6
+++ e_place.c   28 May 2005 05:03:27 -0000      1.7
@@ -65,6 +65,14 @@
    E_Border_List      *bl;
    E_Border           *bd;
 
+#if 0
+   /* DISABLE placement entirely for speed testing */
+   *rx = x;
+   *ry = y;
+   return 1;
+#endif
+   
+   /* FIXME: this NEEDS optimizing */
    a_w = 2;
    a_h = 2;
    a_x = E_NEW(int, 2);




-------------------------------------------------------
This SF.Net email is sponsored by Yahoo.
Introducing Yahoo! Search Developer Network - Create apps using Yahoo!
Search APIs Find out how you can build Yahoo! directly into your own
Applications - visit http://developer.yahoo.net/?fr=offad-ysdn-ostg-q22005
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to