Enlightenment CVS committal

Author  : xcomputerman
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c 


Log Message:
Handy, you cannot ref an object that wasn't allocated by E. And generate a 
*move* event on a move, not a resize event. :)

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -3 -r1.56 -r1.57
--- e_border.c  11 Jan 2005 02:47:27 -0000      1.56
+++ e_border.c  11 Jan 2005 07:19:31 -0000      1.57
@@ -268,7 +268,6 @@
 
    ev = calloc(1, sizeof(E_Event_Border_Add));
    ev->border = bd;
-   e_object_ref(E_OBJECT(bd));
    ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, 
NULL);
    return bd;
 }
@@ -335,8 +334,7 @@
 
    ev = calloc(1, sizeof(E_Event_Border_Resize));
    ev->border = bd;
-   e_object_ref(E_OBJECT(bd));
-   ecore_event_add(E_EVENT_BORDER_RESIZE, ev, 
_e_border_event_border_resize_free, NULL);
+   ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, 
NULL);
 }
 
 void
@@ -359,13 +357,15 @@
 
    ev = calloc(1, sizeof(E_Event_Border_Resize));
    ev->border = bd;
-   e_object_ref(E_OBJECT(bd));
    ecore_event_add(E_EVENT_BORDER_RESIZE, ev, 
_e_border_event_border_resize_free, NULL);
 }
 
 void
 e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
 {
+   E_Event_Border_Move         *mev;
+   E_Event_Border_Resize       *rev;
+   
    E_OBJECT_CHECK(bd);
    if ((x == bd->x) && (y == bd->y) && (w == bd->w) && (h == bd->h)) return;
    bd->x = x;
@@ -382,6 +382,14 @@
                                  bd->y + bd->client_inset.t, 
                                  bd->client.w,
                                  bd->client.h);
+   
+   mev = calloc(1, sizeof(E_Event_Border_Move));
+   mev->border = bd;
+   ecore_event_add(E_EVENT_BORDER_MOVE, mev, _e_border_event_border_move_free, 
NULL);
+
+   rev = calloc(1, sizeof(E_Event_Border_Resize));
+   rev->border = bd;
+   ecore_event_add(E_EVENT_BORDER_RESIZE, rev, 
_e_border_event_border_resize_free, NULL);
 }
 
 /* FIXME: Zone client list is not altered. This affects desktop show function 
*/
@@ -742,13 +750,9 @@
 {
    E_Event_Border_Remove *ev;
 
-   /* FIXME - can the bd is getting freed no matter so the event gets NULL :(
-    * any ideas?
    ev = calloc(1, sizeof(E_Event_Border_Remove));
    ev->border = bd;
-   e_object_ref(E_OBJECT(bd));
    ecore_event_add(E_EVENT_BORDER_REMOVE, ev, 
_e_border_event_border_remove_free, NULL);
-   */
 
    if (focused == bd) focused = NULL;
    while (bd->handlers)
@@ -2684,7 +2688,6 @@
    E_Event_Border_Resize *e;
 
    e = ev;
-   e_object_unref(E_OBJECT(e->border));
    free(e);
 }
 
@@ -2694,7 +2697,6 @@
    E_Event_Border_Resize *e;
 
    e = ev;
-   e_object_unref(E_OBJECT(e->border));
    free(e);
 }
 
@@ -2704,7 +2706,6 @@
    E_Event_Border_Add *e;
 
    e = ev;
-   e_object_unref(E_OBJECT(e->border));
    free(e);
 }
 
@@ -2714,7 +2715,6 @@
    E_Event_Border_Resize *e;
 
    e = ev;
-   e_object_unref(E_OBJECT(e->border));
    free(e);
 }
 




-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to