[clutter] actor: Paint the background color in the paint class handler
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter] actor: Paint the background color in the paint class handler
- Date: Mon, 16 Jan 2012 23:57:56 +0000 (UTC)
commit fd5e422b9fc58bec4cd98d626226b0ae03766e98
Author: Emmanuele Bassi <ebassi linux intel com>
Date: Tue Dec 20 17:05:48 2011 +0000
actor: Paint the background color in the paint class handler
We need to paint the background color in the default class handler for
two reasons: it's logically appropriate, and we don't want actor
subclasses overriding the ::paint class handler to change behaviour only
because somebody decided to set the background color.
clutter/clutter-actor.c | 38 +++++++++++++++++++-------------------
1 files changed, 19 insertions(+), 19 deletions(-)
---
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index 62917b4..4e03447 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -2867,14 +2867,31 @@ add_or_remove_flatten_effect (ClutterActor *self)
static void
clutter_actor_real_paint (ClutterActor *actor)
{
+ ClutterActorPrivate *priv = actor->priv;
ClutterActor *iter;
- for (iter = actor->priv->first_child;
+ /* paint the background color, if set */
+ if (priv->bg_color_set)
+ {
+ float width, height;
+
+ clutter_actor_box_get_size (&priv->allocation, &width, &height);
+
+ cogl_set_source_color4ub (priv->bg_color.red,
+ priv->bg_color.green,
+ priv->bg_color.blue,
+ priv->bg_color.alpha);
+
+ cogl_rectangle (0, 0, width, height);
+ }
+
+ for (iter = priv->first_child;
iter != NULL;
iter = iter->priv->next_sibling)
{
- CLUTTER_NOTE (PAINT, "Painting %s at { %.2f, %.2f - %.2f x %.2f }",
+ CLUTTER_NOTE (PAINT, "Painting %s, child of %s, at { %.2f, %.2f - %.2f x %.2f }",
_clutter_actor_get_debug_name (iter),
+ _clutter_actor_get_debug_name (actor),
iter->priv->allocation.x1,
iter->priv->allocation.y1,
iter->priv->allocation.x2 - iter->priv->allocation.x1,
@@ -3158,23 +3175,6 @@ clutter_actor_continue_paint (ClutterActor *self)
{
if (_clutter_context_get_pick_mode () == CLUTTER_PICK_NONE)
{
- /* paint the background color, if set */
- if (priv->bg_color_set)
- {
- float width, height;
-
- clutter_actor_box_get_size (&priv->allocation,
- &width,
- &height);
-
- cogl_set_source_color4ub (priv->bg_color.red,
- priv->bg_color.green,
- priv->bg_color.blue,
- priv->bg_color.alpha);
-
- cogl_rectangle (0, 0, width, height);
- }
-
g_signal_emit (self, actor_signals[PAINT], 0);
}
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]