From: Alejandro PiƱeiro Date: Sat, 25 Dec 2010 23:13:07 +0000 (+0100) Subject: [gail] Proper connection to a toplevel window destroy signal X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=e1029b907c862435b0464b7105b22582a4fb25c8;p=~andy%2Fgtk [gail] Proper connection to a toplevel window destroy signal Only connect to the destroy of a toplevel window if it was really added to the toplevel list of windows. The destroy callback was added to remove the window from the toplevel list. The callback doesn't cause a error, but would iterate on the toplevel list without success. --- diff --git a/modules/other/gail/gailtoplevel.c b/modules/other/gail/gailtoplevel.c index 6205a42ea..f998a7007 100644 --- a/modules/other/gail/gailtoplevel.c +++ b/modules/other/gail/gailtoplevel.c @@ -235,21 +235,23 @@ gail_toplevel_show_event_watcher (GSignalInvocationHint *ihint, * Add the window to the list & emit the signal. * Don't do this for tooltips (Bug #150649). */ - if (atk_object_get_role (child) != ATK_ROLE_TOOL_TIP) - { - toplevel->window_list = g_list_append (toplevel->window_list, widget); - - n_children = g_list_length (toplevel->window_list); - - /* - * Must subtract 1 from the n_children since the index is 0-based - * but g_list_length is 1-based. - */ - atk_object_set_parent (child, atk_obj); - g_signal_emit_by_name (atk_obj, "children-changed::add", - n_children - 1, - child, NULL); - } + if (atk_object_get_role (child) == ATK_ROLE_TOOL_TIP) + { + return TRUE; + } + + toplevel->window_list = g_list_append (toplevel->window_list, widget); + + n_children = g_list_length (toplevel->window_list); + + /* + * Must subtract 1 from the n_children since the index is 0-based + * but g_list_length is 1-based. + */ + atk_object_set_parent (child, atk_obj); + g_signal_emit_by_name (atk_obj, "children-changed::add", + n_children - 1, + child, NULL); /* Connect destroy signal callback */ g_signal_connect (G_OBJECT(object),