Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_key_grab.c 


Log Message:


bleh!

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_key_grab.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- evas_key_grab.c     8 Jul 2003 06:08:26 -0000       1.7
+++ evas_key_grab.c     17 Jul 2003 10:01:13 -0000      1.8
@@ -98,16 +98,31 @@
 void
 evas_object_grabs_cleanup(Evas_Object *obj)
 {
-   while (obj->grabs)
+   if (obj->layer->evas->walking_grabs)
      {
-       Evas_Key_Grab *g;
-
-       g = obj->grabs->data;
-       if (g->keyname) free(g->keyname);
-       free(g);
-       obj->layer->evas->grabs = evas_list_remove(obj->layer->evas->grabs, g);
-       obj->grabs = evas_list_remove(obj->grabs, g);
-     }  
+       Evas_List *l;
+       
+       for (l = obj->grabs; l; l = l->next)
+         {
+            Evas_Key_Grab *g;
+            
+            g = l->data;
+            g->delete_me = 1;
+         }
+     }
+   else
+     {
+       while (obj->grabs)
+         {
+            Evas_Key_Grab *g;
+            
+            g = obj->grabs->data;
+            if (g->keyname) free(g->keyname);
+            free(g);
+            obj->layer->evas->grabs = evas_list_remove(obj->layer->evas->grabs, g);
+            obj->grabs = evas_list_remove(obj->grabs, g);
+         }  
+     }
 }
 
 void
@@ -119,6 +134,7 @@
    g = evas_key_grab_find(obj, keyname, modifiers, not_modifiers, 0);
    if (!g) return;
    g->object->grabs = evas_list_remove(g->object->grabs, g);
+   obj->layer->evas->grabs = evas_list_remove(obj->layer->evas->grabs, g);
    if (g->keyname) free(g->keyname);
    free(g);
 }




-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to