Invalidate old source in gdk_window_move_region

When we copy the region we need to also re-expose the areas of
the copied region that was not also in the destination.
And, we need to do this invalidation after the move, as the
move also moves any invalid area.
This commit is contained in:
Alexander Larsson 2009-08-13 13:32:17 +02:00
parent 8a517dc0bb
commit 043ca236f2

View File

@ -6960,17 +6960,19 @@ gdk_window_move_region (GdkWindow *window,
gdk_region_offset (copy_area, dx, dy);
gdk_region_intersect (copy_area, private->clip_region_with_children);
/* invalidate parts of the region not covered by the copy */
/* Invalidate parts of the region (source and dest) not covered
by the copy */
nocopy_area = gdk_region_copy (region);
gdk_region_offset (nocopy_area, dx, dy);
gdk_region_union (nocopy_area, region);
gdk_region_subtract (nocopy_area, copy_area);
gdk_window_invalidate_region (window, nocopy_area, FALSE);
gdk_region_destroy (nocopy_area);
/* convert from window coords to impl */
gdk_region_offset (copy_area, private->abs_x, private->abs_y);
move_region_on_impl (impl_window, copy_area, dx, dy); /* Takes ownership of copy_area */
gdk_window_invalidate_region (window, nocopy_area, FALSE);
gdk_region_destroy (nocopy_area);
}
/**