mirror of
https://github.com/brl/mutter.git
synced 2025-02-19 22:54:08 +00:00
stage: re-implement minimal paint() method to respect Z order
Without a paint() implementation in clutter-stage, the function from clutter-group is used. That class has its own child list, but attempts to use sort_depth_order, which is empty in this case. This provides a partial fix by replacing a minimal paint(), see: https://bugzilla.gnome.org/show_bug.cgi?id=711645
This commit is contained in:
parent
2b3fac8b3d
commit
5d53620bb9
@ -691,6 +691,21 @@ _clutter_stage_do_paint (ClutterStage *stage,
|
|||||||
clutter_stage_invoke_paint_callback (stage);
|
clutter_stage_invoke_paint_callback (stage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we don't implement this here, we get the paint function
|
||||||
|
* from the deprecated clutter-group class, which doesn't
|
||||||
|
* respect the Z order as it uses our empty sort_depth_order.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
clutter_stage_paint (ClutterActor *self)
|
||||||
|
{
|
||||||
|
ClutterActorIter iter;
|
||||||
|
ClutterActor *child;
|
||||||
|
|
||||||
|
clutter_actor_iter_init (&iter, self);
|
||||||
|
while (clutter_actor_iter_next (&iter, &child))
|
||||||
|
clutter_actor_paint (child);
|
||||||
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* the Stage is cleared in clutter_actor_paint_node() */
|
/* the Stage is cleared in clutter_actor_paint_node() */
|
||||||
static void
|
static void
|
||||||
@ -1873,6 +1888,7 @@ clutter_stage_class_init (ClutterStageClass *klass)
|
|||||||
actor_class->allocate = clutter_stage_allocate;
|
actor_class->allocate = clutter_stage_allocate;
|
||||||
actor_class->get_preferred_width = clutter_stage_get_preferred_width;
|
actor_class->get_preferred_width = clutter_stage_get_preferred_width;
|
||||||
actor_class->get_preferred_height = clutter_stage_get_preferred_height;
|
actor_class->get_preferred_height = clutter_stage_get_preferred_height;
|
||||||
|
actor_class->paint = clutter_stage_paint;
|
||||||
actor_class->pick = clutter_stage_pick;
|
actor_class->pick = clutter_stage_pick;
|
||||||
actor_class->get_paint_volume = clutter_stage_get_paint_volume;
|
actor_class->get_paint_volume = clutter_stage_get_paint_volume;
|
||||||
actor_class->realize = clutter_stage_realize;
|
actor_class->realize = clutter_stage_realize;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user