diff --git a/clutter/clutter/clutter-effect.c b/clutter/clutter/clutter-effect.c index 3c9d8efd5..012037f61 100644 --- a/clutter/clutter/clutter-effect.c +++ b/clutter/clutter/clutter-effect.c @@ -201,10 +201,8 @@ clutter_effect_real_modify_paint_volume (ClutterEffect *effect, } static void -clutter_effect_real_paint_node (ClutterEffect *effect, - ClutterPaintNode *node, - ClutterPaintContext *paint_context, - ClutterEffectPaintFlags flags) +add_actor_node (ClutterEffect *effect, + ClutterPaintNode *node) { ClutterPaintNode *actor_node; ClutterActor *actor; @@ -216,6 +214,15 @@ clutter_effect_real_paint_node (ClutterEffect *effect, clutter_paint_node_unref (actor_node); } +static void +clutter_effect_real_paint_node (ClutterEffect *effect, + ClutterPaintNode *node, + ClutterPaintContext *paint_context, + ClutterEffectPaintFlags flags) +{ + add_actor_node (effect, node); +} + static void clutter_effect_real_paint (ClutterEffect *effect, ClutterPaintNode *node, @@ -231,10 +238,16 @@ clutter_effect_real_paint (ClutterEffect *effect, pre_paint_succeeded = effect_class->pre_paint (effect, node,paint_context); - effect_class->paint_node (effect, node, paint_context, flags); - if (pre_paint_succeeded) - effect_class->post_paint (effect, node, paint_context); + { + effect_class->paint_node (effect, node, paint_context, flags); + effect_class->post_paint (effect, node, paint_context); + } + else + { + /* Just paint the actor as fallback */ + add_actor_node (effect, node); + } } static void