forked from enlightenment/enlightenment
werd! found the over-ref. borders begin created before the border system
initted which mean events generated were of the wrogn type (0) which meant they were thrown out which meant the ref nevert got its macthing unref called.... :) SVN revision: 12963
This commit is contained in:
parent
aa53155368
commit
ba5ce0470c
|
@ -282,6 +282,8 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map)
|
|||
|
||||
ev = calloc(1, sizeof(E_Event_Border_Add));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, NULL);
|
||||
return bd;
|
||||
|
@ -301,6 +303,8 @@ e_border_desk_set(E_Border *bd, E_Desk *desk)
|
|||
|
||||
ev = calloc(1, sizeof(E_Event_Border_Desk_Set));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ev->desk = desk;
|
||||
e_object_ref(E_OBJECT(desk));
|
||||
|
@ -323,6 +327,8 @@ e_border_show(E_Border *bd)
|
|||
|
||||
ev = calloc(1, sizeof(E_Event_Border_Show));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_SHOW, ev, _e_border_event_border_show_free, NULL);
|
||||
}
|
||||
|
@ -349,6 +355,8 @@ e_border_hide(E_Border *bd)
|
|||
|
||||
ev = calloc(1, sizeof(E_Event_Border_Hide));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL);
|
||||
}
|
||||
|
@ -383,6 +391,8 @@ e_border_move(E_Border *bd, int x, int y)
|
|||
_e_border_zone_update(bd);
|
||||
ev = calloc(1, sizeof(E_Event_Border_Move));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, NULL);
|
||||
}
|
||||
|
@ -418,6 +428,8 @@ e_border_resize(E_Border *bd, int w, int h)
|
|||
_e_border_zone_update(bd);
|
||||
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
@ -461,11 +473,15 @@ e_border_move_resize(E_Border *bd, int x, int y, int w, int h)
|
|||
_e_border_zone_update(bd);
|
||||
mev = calloc(1, sizeof(E_Event_Border_Move));
|
||||
mev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(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;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, rev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
@ -633,6 +649,8 @@ e_border_shade(E_Border *bd, E_Direction dir)
|
|||
|
||||
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
@ -709,6 +727,8 @@ e_border_unshade(E_Border *bd, E_Direction dir)
|
|||
|
||||
ev = calloc(1, sizeof(E_Event_Border_Resize));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL);
|
||||
}
|
||||
|
@ -901,6 +921,8 @@ _e_border_del(E_Border *bd)
|
|||
|
||||
ev = calloc(1, sizeof(E_Event_Border_Remove));
|
||||
ev->border = bd;
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL);
|
||||
}
|
||||
|
@ -2834,7 +2856,7 @@ _e_border_event_border_resize_free(void *data, void *ev)
|
|||
static void
|
||||
_e_border_event_border_move_free(void *data, void *ev)
|
||||
{
|
||||
E_Event_Border_Resize *e;
|
||||
E_Event_Border_Move *e;
|
||||
|
||||
e = ev;
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
|
@ -2854,7 +2876,7 @@ _e_border_event_border_add_free(void *data, void *ev)
|
|||
static void
|
||||
_e_border_event_border_remove_free(void *data, void *ev)
|
||||
{
|
||||
E_Event_Border_Resize *e;
|
||||
E_Event_Border_Remove *e;
|
||||
|
||||
e = ev;
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
|
@ -2874,7 +2896,7 @@ _e_border_event_border_show_free(void *data, void *ev)
|
|||
static void
|
||||
_e_border_event_border_hide_free(void *data, void *ev)
|
||||
{
|
||||
E_Event_Border_Show *e;
|
||||
E_Event_Border_Hide *e;
|
||||
|
||||
e = ev;
|
||||
e_object_unref(E_OBJECT(e->border));
|
||||
|
|
|
@ -438,6 +438,8 @@ _e_int_menus_clients_pre_cb(void *data, E_Menu *m)
|
|||
e_menu_item_check_set(mi, 1);
|
||||
e_menu_item_label_set(mi, bd->client.icccm.title);
|
||||
/* ref the border as we implicitly ref it in the callback */
|
||||
/* SUSPICION: does the unref for this actually sometimes not get */
|
||||
/* called? coudl this be the dangling borders issue? */
|
||||
e_object_ref(E_OBJECT(bd));
|
||||
e_menu_item_callback_set(mi, _e_int_menus_clients_item_cb, bd);
|
||||
if (!bd->iconic) e_menu_item_toggle_set(mi, 1);
|
||||
|
|
|
@ -225,27 +225,6 @@ main(int argc, char **argv)
|
|||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(_e_main_screens_shutdown);
|
||||
/* init global atoms */
|
||||
if (!e_atoms_init())
|
||||
{
|
||||
e_error_message_show("Enlightenment cannot set up atoms system.");
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_atoms_shutdown);
|
||||
/* init focus system */
|
||||
if (!e_focus_init())
|
||||
{
|
||||
e_error_message_show("Enlightenment cannot set up its focus system.");
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_focus_shutdown);
|
||||
/* init border system */
|
||||
if (!e_border_init())
|
||||
{
|
||||
e_error_message_show("Enlightenment cannot set up its border system.");
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_border_shutdown);
|
||||
/* init app system */
|
||||
if (!e_app_init())
|
||||
{
|
||||
|
@ -496,6 +475,7 @@ _e_main_screens_init(void)
|
|||
Ecore_X_Window *roots;
|
||||
int num, i;
|
||||
|
||||
if (!e_atoms_init()) return 0;
|
||||
if (!e_manager_init()) return 0;
|
||||
if (!e_container_init()) return 0;
|
||||
if (!e_zone_init()) return 0;
|
||||
|
@ -509,6 +489,8 @@ _e_main_screens_init(void)
|
|||
num);
|
||||
return 0;
|
||||
}
|
||||
if (!e_focus_init()) return 0;
|
||||
if (!e_border_init()) return 0;
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
E_Manager *man;
|
||||
|
@ -567,10 +549,13 @@ _e_main_screens_init(void)
|
|||
static int
|
||||
_e_main_screens_shutdown(void)
|
||||
{
|
||||
e_border_shutdown();
|
||||
e_focus_shutdown();
|
||||
e_desk_shutdown();
|
||||
e_zone_shutdown();
|
||||
e_container_shutdown();
|
||||
e_manager_shutdown();
|
||||
e_atoms_shutdown();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue