forked from AuroraMiddleware/gtk
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.
This commit is contained in:
parent
be8c0e4734
commit
1e196b39b8
@ -237,21 +237,23 @@ gail_toplevel_show_event_watcher (GSignalInvocationHint *ihint,
|
|||||||
* Add the window to the list & emit the signal.
|
* Add the window to the list & emit the signal.
|
||||||
* Don't do this for tooltips (Bug #150649).
|
* Don't do this for tooltips (Bug #150649).
|
||||||
*/
|
*/
|
||||||
if (atk_object_get_role (child) != ATK_ROLE_TOOL_TIP)
|
if (atk_object_get_role (child) == ATK_ROLE_TOOL_TIP)
|
||||||
{
|
{
|
||||||
toplevel->window_list = g_list_append (toplevel->window_list, widget);
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
n_children = g_list_length (toplevel->window_list);
|
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.
|
/*
|
||||||
*/
|
* Must subtract 1 from the n_children since the index is 0-based
|
||||||
atk_object_set_parent (child, atk_obj);
|
* but g_list_length is 1-based.
|
||||||
g_signal_emit_by_name (atk_obj, "children-changed::add",
|
*/
|
||||||
n_children - 1,
|
atk_object_set_parent (child, atk_obj);
|
||||||
child, NULL);
|
g_signal_emit_by_name (atk_obj, "children-changed::add",
|
||||||
}
|
n_children - 1,
|
||||||
|
child, NULL);
|
||||||
|
|
||||||
/* Connect destroy signal callback */
|
/* Connect destroy signal callback */
|
||||||
g_signal_connect (G_OBJECT(object),
|
g_signal_connect (G_OBJECT(object),
|
||||||
|
Loading…
Reference in New Issue
Block a user