Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_x/xlib


Modified Files:
        ecore_x_netwm.c 


Log Message:


ignore unkown atom types

===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_x/xlib/ecore_x_netwm.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- ecore_x_netwm.c     23 Jul 2008 10:00:01 -0000      1.1
+++ ecore_x_netwm.c     23 Jul 2008 20:58:47 -0000      1.2
@@ -847,8 +847,8 @@
 EAPI int
 ecore_x_netwm_window_types_get(Ecore_X_Window win, Ecore_X_Window_Type **types)
 {
-   int                  num, i;
-   Ecore_X_Atom        *atoms = NULL;
+   int                  num, i, j, numret;
+   Ecore_X_Atom        *atoms = NULL, *atoms2 = NULL;
 
    if (types) *types = NULL;
    num = ecore_x_window_prop_atom_list_get(win,
@@ -859,11 +859,27 @@
        if (atoms) free(atoms);
        return 0;
      }
+   numret = 0;
    for (i = 0; i < num; i++)
-     atoms[i] = _ecore_x_netwm_window_type_type_get(atoms[i]);
-   if (types) *types = atoms;
-   else free(atoms);
-   return num;
+     {
+       atoms[i] = _ecore_x_netwm_window_type_type_get(atoms[i]);
+       if (atoms[i] != 0) numret++;
+     }
+   if (numret == 0) return 0;
+   atoms2 = malloc(numret * sizeof(Ecore_X_Window_Type));
+   if (!atoms2) return 0;
+   for (j = 0, i = 0; i < num; i++)
+     {
+        if (atoms[i] != 0)
+         {
+            atoms2[j] = atoms[i];
+            j++;
+         }
+     }
+   free(atoms);
+   if (types) *types = atoms2;
+   else free(atoms2);
+   return numret;
 }
 
 static Ecore_X_Atom



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to