El caso de Eye of Gnome Donde sí es costoso redibujar de más static void image_view_init (ImageView *view) { gtk_widget_set_double_buffered (GTK_WIDGET (view), FALSE); } static gboolean image_view_expose_event (GtkWidget *widget, GdkEventExpose *event) { ImageView *view; GdkRectangle *rects; gint n_rects; int i; view = IMAGE_VIEW (widget); gdk_region_get_rectangles (event->region, &rects, &n_rects); for (i = 0; i < n_rects; i++) image_view_paint_area (view, rects[i]); g_free (rects); return TRUE; }