NULL);
}
-/* Code for dirty-region queueing
- */
-static GSList *update_surfaces = NULL;
-
-static void
-gdk_surface_add_update_surface (GdkSurface *surface)
-{
- GSList *tmp;
-
- /* Check whether "surface" is already in "update_surfaces" list.
- * It could be added during execution of gtk_widget_destroy() when
- * setting focus widget to NULL and redrawing old focus widget.
- * See bug 711552.
- */
- tmp = g_slist_find (update_surfaces, surface);
- if (tmp != NULL)
- return;
-
- update_surfaces = g_slist_prepend (update_surfaces, g_object_ref (surface));
-}
-
-static void
-gdk_surface_remove_update_surface (GdkSurface *surface)
-{
- GSList *link;
-
- link = g_slist_find (update_surfaces, surface);
- if (link != NULL)
- {
- update_surfaces = g_slist_delete_link (update_surfaces, link);
- g_object_unref (surface);
- }
-}
-
static gboolean
gdk_surface_is_toplevel_frozen (GdkSurface *surface)
{
{
surface->pending_phases &= ~GDK_FRAME_CLOCK_PHASE_PAINT;
gdk_surface_process_updates_internal (surface);
- gdk_surface_remove_update_surface (surface);
}
g_object_unref (surface);
cairo_region_union (impl_surface->update_area, region);
else
{
- gdk_surface_add_update_surface (impl_surface);
impl_surface->update_area = cairo_region_copy (region);
gdk_surface_schedule_update (impl_surface);
}
if (surface->update_area)
{
- gdk_surface_remove_update_surface (surface);
-
cairo_region_destroy (surface->update_area);
surface->update_area = NULL;
}