Commit 42845c94 authored by Ell's avatar Ell

app: in gimp_projection_chunk_render_start(), properly invalidate preview

In gimp_projection_chunk_render_start(), when the current
projection rendering is complete, but not finalized yet, and no new
rendering is started (since the current update region is empty),
make sure to invalidate the projectable's preview, since it
normally happens when rendering is finalized, which doesn't happen
in this case.
parent 0e5de957
......@@ -708,7 +708,8 @@ gimp_projection_flush_whenever (GimpProjection *proj,
static void
gimp_projection_chunk_render_start (GimpProjection *proj)
{
cairo_region_t *region = proj->priv->update_region;
cairo_region_t *region = proj->priv->update_region;
gboolean invalidate_preview = FALSE;
if (proj->priv->iter)
{
......@@ -716,6 +717,9 @@ gimp_projection_chunk_render_start (GimpProjection *proj)
proj->priv->iter = NULL;
if (cairo_region_is_empty (region))
invalidate_preview = proj->priv->invalidate_preview;
if (proj->priv->update_region)
{
cairo_region_union (region, proj->priv->update_region);
......@@ -751,6 +755,16 @@ gimp_projection_chunk_render_start (GimpProjection *proj)
g_source_remove (proj->priv->idle_id);
proj->priv->idle_id = 0;
}
if (invalidate_preview)
{
/* invalidate the preview here since it is constructed from
* the projection
*/
proj->priv->invalidate_preview = FALSE;
gimp_projectable_invalidate_preview (proj->priv->projectable);
}
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment