st-theme-node: Add method to invalidate drawing state

StThemeNode caches its resources aggressively to keep the required
work on paint to a minimum - right now, resources are only recreated
on allocation changes.
In order to update the background-image property correctly when the
underlying file changes, resources need to be recreated without a
size change, so add an explicit method for that.

https://bugzilla.gnome.org/show_bug.cgi?id=679268
This commit is contained in:
Florian Müllner 2012-09-20 21:44:21 +02:00
parent dc9ad8df80
commit c4c470c1f3
2 changed files with 8 additions and 0 deletions

View File

@ -2088,3 +2088,10 @@ st_theme_node_copy_cached_paint_state (StThemeNode *node,
if (other->corner_material[corner_id]) if (other->corner_material[corner_id])
node->corner_material[corner_id] = cogl_handle_ref (other->corner_material[corner_id]); node->corner_material[corner_id] = cogl_handle_ref (other->corner_material[corner_id]);
} }
void
st_theme_node_invalidate_paint_state (StThemeNode *node)
{
node->alloc_width = 0;
node->alloc_height = 0;
}

View File

@ -244,6 +244,7 @@ void st_theme_node_paint (StThemeNode *node,
void st_theme_node_copy_cached_paint_state (StThemeNode *node, void st_theme_node_copy_cached_paint_state (StThemeNode *node,
StThemeNode *other); StThemeNode *other);
void st_theme_node_invalidate_paint_state (StThemeNode *node);
G_END_DECLS G_END_DECLS