st-theme-node-drawing: Move most of the cached paint state to another struct

Since we now share theme nodes between, we shouldn't cache the paint state
across all nodes. As a first step towards putting this in the actor, split
out the state into another structure. Keep it in the theme node for now
so that we don't make too many changes in one commit.

It's possible that some of these pieces of drawing state could be shared
between theme nodes. For the sake of simplicity, assume that none of them
are shared or should be shared. A future commit could identify those that
could be shared and move them back into the theme node.

https://bugzilla.gnome.org/show_bug.cgi?id=697274
This commit is contained in:
Jasper St. Pierre
2013-04-04 19:47:28 -04:00
parent 40b895d16b
commit 72bc46d339
3 changed files with 161 additions and 139 deletions

View File

@ -49,7 +49,7 @@ static void
st_theme_node_init (StThemeNode *node)
{
node->transition_duration = -1;
_st_theme_node_init_drawing_state (node);
_st_theme_node_paint_state_init (&node->state);
}
static void
@ -152,7 +152,7 @@ st_theme_node_finalize (GObject *object)
if (node->background_image)
g_free (node->background_image);
_st_theme_node_free_drawing_state (node);
_st_theme_node_paint_state_free (&node->state);
G_OBJECT_CLASS (st_theme_node_parent_class)->finalize (object);
}