forked from enlightenment/enlightenment
Handy, you cannot ref an object that wasn't allocated by E. And generate a *move* event on a move, not a resize event. :)
SVN revision: 12887
This commit is contained in:
parent
2c076a1ee6
commit
70705c23cb
|
@ -268,7 +268,6 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map)
|
||||||
|
|
||||||
ev = calloc(1, sizeof(E_Event_Border_Add));
|
ev = calloc(1, sizeof(E_Event_Border_Add));
|
||||||
ev->border = bd;
|
ev->border = bd;
|
||||||
e_object_ref(E_OBJECT(bd));
|
|
||||||
ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, NULL);
|
ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, NULL);
|
||||||
return bd;
|
return bd;
|
||||||
}
|
}
|
||||||
|
@ -335,8 +334,7 @@ e_border_move(E_Border *bd, int x, int y)
|
||||||
|
|
||||||
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||||
ev->border = bd;
|
ev->border = bd;
|
||||||
e_object_ref(E_OBJECT(bd));
|
ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, NULL);
|
||||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -359,13 +357,15 @@ e_border_resize(E_Border *bd, int w, int h)
|
||||||
|
|
||||||
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||||
ev->border = bd;
|
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_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
|
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);
|
E_OBJECT_CHECK(bd);
|
||||||
if ((x == bd->x) && (y == bd->y) && (w == bd->w) && (h == bd->h)) return;
|
if ((x == bd->x) && (y == bd->y) && (w == bd->w) && (h == bd->h)) return;
|
||||||
bd->x = x;
|
bd->x = x;
|
||||||
|
@ -382,6 +382,14 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
|
||||||
bd->y + bd->client_inset.t,
|
bd->y + bd->client_inset.t,
|
||||||
bd->client.w,
|
bd->client.w,
|
||||||
bd->client.h);
|
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 */
|
/* FIXME: Zone client list is not altered. This affects desktop show function */
|
||||||
|
@ -742,13 +750,9 @@ _e_border_free(E_Border *bd)
|
||||||
{
|
{
|
||||||
E_Event_Border_Remove *ev;
|
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 = calloc(1, sizeof(E_Event_Border_Remove));
|
||||||
ev->border = bd;
|
ev->border = bd;
|
||||||
e_object_ref(E_OBJECT(bd));
|
|
||||||
ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL);
|
ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL);
|
||||||
*/
|
|
||||||
|
|
||||||
if (focused == bd) focused = NULL;
|
if (focused == bd) focused = NULL;
|
||||||
while (bd->handlers)
|
while (bd->handlers)
|
||||||
|
@ -2684,7 +2688,6 @@ _e_border_event_border_resize_free(void *data, void *ev)
|
||||||
E_Event_Border_Resize *e;
|
E_Event_Border_Resize *e;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
e_object_unref(E_OBJECT(e->border));
|
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2694,7 +2697,6 @@ _e_border_event_border_move_free(void *data, void *ev)
|
||||||
E_Event_Border_Resize *e;
|
E_Event_Border_Resize *e;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
e_object_unref(E_OBJECT(e->border));
|
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2704,7 +2706,6 @@ _e_border_event_border_add_free(void *data, void *ev)
|
||||||
E_Event_Border_Add *e;
|
E_Event_Border_Add *e;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
e_object_unref(E_OBJECT(e->border));
|
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2714,7 +2715,6 @@ _e_border_event_border_remove_free(void *data, void *ev)
|
||||||
E_Event_Border_Resize *e;
|
E_Event_Border_Resize *e;
|
||||||
|
|
||||||
e = ev;
|
e = ev;
|
||||||
e_object_unref(E_OBJECT(e->border));
|
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue