Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_border.h 


Log Message:


add a check to see whats going on if the ghost borders are around

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.224
retrieving revision 1.225
diff -u -3 -r1.224 -r1.225
--- e_border.c  25 May 2005 10:09:34 -0000      1.224
+++ e_border.c  26 May 2005 11:48:39 -0000      1.225
@@ -337,7 +337,7 @@
      }
 
    /* just to friggin make java happy - we're DELAYING the reparent until
-    * evail time...
+    * eval time...
     */
 /*   ecore_x_window_reparent(win, bd->client.shell_win, 0, 0); */
    bd->need_reparent = 1;
@@ -1377,20 +1377,13 @@
    if (bd->client.icccm.delete_request)
      ecore_x_window_delete_request_send(bd->client.win);
    else
-     {
-       ecore_x_kill(bd->client.win);
-       ecore_x_sync();
-//     ecore_x_window_del(bd->client.win);
-       e_border_hide(bd, 0);
-       e_object_del(E_OBJECT(bd));
-     }
+     e_border_act_kill_begin(bd);
 }
 
 void
 e_border_act_kill_begin(E_Border *bd)
 {
    ecore_x_kill(bd->client.win);
-   ecore_x_sync();
    e_border_hide(bd, 0);
    e_object_del(E_OBJECT(bd));
 }
@@ -1434,6 +1427,11 @@
    if (move == bd)
      _e_border_move_end(bd);
 
+   if (bd->dangling_ref_check)
+     {
+       ecore_timer_del(bd->dangling_ref_check);
+       bd->dangling_ref_check = NULL;
+     }
    if (bd->raise_timer)
      {
        ecore_timer_del(bd->raise_timer);
@@ -1467,6 +1465,7 @@
        ecore_x_window_reparent(bd->client.win, 
bd->zone->container->manager->root,
                                bd->x + bd->client_inset.l, bd->y + 
bd->client_inset.t);
        ecore_x_window_save_set_del(bd->client.win);
+       bd->already_unparented = 1;
      }
    if (bd->client.border.name) free(bd->client.border.name);
    if (bd->client.icccm.title) free(bd->client.icccm.title);
@@ -1490,16 +1489,36 @@
    free(bd);
 }
 
+static int
+_e_border_del_dangling_ref_check(void *data)
+{
+   E_Border *bd;
+   
+   bd = data;
+   printf("---\n");
+   printf("EEK EEK border still around 1 second after being deleted!\n");
+   printf("%p, %i, \"%s\" [\"%s\" \"%s\"]\n",
+         bd, e_object_ref_get(E_OBJECT(bd)), bd->client.icccm.title,
+         bd->client.icccm.name, bd->client.icccm.class);
+   printf("---\n");
+   return 1;
+}
+
 static void
 _e_border_del(E_Border *bd)
 {
    E_Event_Border_Remove *ev;
 
-   ecore_x_window_reparent(bd->client.win,
-                          bd->zone->container->manager->root,
-                          bd->x + bd->client_inset.l,
-                          bd->y + bd->client_inset.t);
-   ecore_x_window_save_set_del(bd->client.win);
+   if (!bd->dangling_ref_check)
+     bd->dangling_ref_check = ecore_timer_add(1.0, 
_e_border_del_dangling_ref_check, bd);
+   if (!bd->already_unparented)
+     {
+       ecore_x_window_reparent(bd->client.win,
+                               bd->zone->container->manager->root,
+                               bd->x + bd->client_inset.l,
+                               bd->y + bd->client_inset.t);
+       ecore_x_window_save_set_del(bd->client.win);
+     }
    bd->already_unparented = 1;
 
    ev = calloc(1, sizeof(E_Event_Border_Remove));
@@ -1524,7 +1543,8 @@
    return 1;
 }
 
-static int _e_border_cb_window_destroy(void *data, int ev_type, void *ev)
+static int
+_e_border_cb_window_destroy(void *data, int ev_type, void *ev)
 {
    E_Border *bd;
    Ecore_X_Event_Window_Destroy *e;
@@ -3925,13 +3945,7 @@
    if (bd->client.icccm.delete_request)
      ecore_x_window_delete_request_send(bd->client.win);
    else
-     {
-       ecore_x_kill(bd->client.win);
-       ecore_x_sync();
-//         ecore_x_window_del(bd->client.win);
-       e_border_hide(bd, 0);
-       e_object_del(E_OBJECT(bd));
-     }
+     e_border_act_close_begin(bd);
 }
 
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -3 -r1.59 -r1.60
--- e_border.h  20 May 2005 18:46:32 -0000      1.59
+++ e_border.h  26 May 2005 11:48:39 -0000      1.60
@@ -239,6 +239,8 @@
    unsigned int layer;
    E_Action *cur_mouse_action;
    Ecore_Timer *raise_timer;
+
+   Ecore_Timer *dangling_ref_check;
 };
 
 struct _E_Border_Pending_Move_Resize 




-------------------------------------------------------
SF.Net email is sponsored by: GoToMeeting - the easiest way to collaborate
online with coworkers and clients while avoiding the high cost of travel and
communications. There is no equipment to buy and you can meet as often as
you want. Try it free.http://ads.osdn.com/?ad_id=7402&alloc_id=16135&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to