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