mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 08:30: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
|
static void
|
||||||
clutter_box_class_init (ClutterBoxClass *klass)
|
clutter_box_class_init (ClutterBoxClass *klass)
|
||||||
{
|
{
|
||||||
@ -239,6 +255,7 @@ clutter_box_class_init (ClutterBoxClass *klass)
|
|||||||
|
|
||||||
g_type_class_add_private (klass, sizeof (ClutterBoxPrivate));
|
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->get_paint_volume = clutter_box_real_get_paint_volume;
|
||||||
actor_class->pick = clutter_box_real_pick;
|
actor_class->pick = clutter_box_real_pick;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user