mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 00:20:42 -05:00
box: Restore the ::destroy handler
During the gutting of ClutterBox, the destroy and dispose implementation were removed. The former, especially, destroyed all children - which usually meant that the redraw queues for the childre was cleared as well. The removal introduced crashes when a Box was destroyed while its children were still queueing redraws.
This commit is contained in:
parent
9d355f12c6
commit
fa856e3f5e
@ -231,6 +231,22 @@ clutter_box_get_property (GObject *gobject,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_box_real_destroy (ClutterActor *actor)
|
||||
{
|
||||
ClutterActor *iter;
|
||||
|
||||
iter = clutter_actor_get_first_child (actor);
|
||||
while (iter != NULL)
|
||||
{
|
||||
ClutterActor *next = clutter_actor_get_next_sibling (iter);
|
||||
|
||||
clutter_actor_destroy (iter);
|
||||
|
||||
iter = next;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
clutter_box_class_init (ClutterBoxClass *klass)
|
||||
{
|
||||
@ -239,6 +255,7 @@ clutter_box_class_init (ClutterBoxClass *klass)
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ClutterBoxPrivate));
|
||||
|
||||
actor_class->destroy = clutter_box_real_destroy;
|
||||
actor_class->get_paint_volume = clutter_box_real_get_paint_volume;
|
||||
actor_class->pick = clutter_box_real_pick;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user