mirror of
https://github.com/brl/mutter.git
synced 2024-11-26 18:11:05 -05:00
actor: sync entry has_clip member to clip state
The clutter stage has a list of entries of actors waiting to be redrawn. Each entry has a "clip" ClutterPaintVolume member which represents which how much of the actor needs to get redrawn. It's possible for there to be no clip associated with the entry. In this case, the clip member is invalid, the has_clip member should be set to false. This commit fixes a bug where the has_clip member was not being initially, explicitly set to false for new entries, and not being explicitly set to false in the event the clip associated with the entry is freed. http://bugzilla.clutter-project.org/show_bug.cgi?id=2350 Signed-off-by: Robert Bragg <robert@linux.intel.com>
This commit is contained in:
parent
fba6335291
commit
32d647ddd1
@ -3212,6 +3212,8 @@ _clutter_stage_queue_actor_redraw (ClutterStage *stage,
|
|||||||
_clutter_paint_volume_init_static (actor, &entry->clip);
|
_clutter_paint_volume_init_static (actor, &entry->clip);
|
||||||
_clutter_paint_volume_set_from_volume (&entry->clip, clip);
|
_clutter_paint_volume_set_from_volume (&entry->clip, clip);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
entry->has_clip = FALSE;
|
||||||
|
|
||||||
stage->priv->pending_queue_redraws =
|
stage->priv->pending_queue_redraws =
|
||||||
g_list_prepend (stage->priv->pending_queue_redraws, entry);
|
g_list_prepend (stage->priv->pending_queue_redraws, entry);
|
||||||
@ -3236,7 +3238,10 @@ _clutter_stage_queue_redraw_entry_invalidate (
|
|||||||
g_object_unref (entry->actor);
|
g_object_unref (entry->actor);
|
||||||
entry->actor = NULL;
|
entry->actor = NULL;
|
||||||
if (entry->has_clip)
|
if (entry->has_clip)
|
||||||
clutter_paint_volume_free (&entry->clip);
|
{
|
||||||
|
clutter_paint_volume_free (&entry->clip);
|
||||||
|
entry->has_clip = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user