Sin automatización Podríamos hacer lo siguiente GtkWidget *mi_cosita = cosita_new (); gtk_widget_set_double_buffered (mi_cosita, FALSE); /* ... */ static gboolean cosita_expose_event (GtkWidget *widget, GdkEventExpose *event) { gdk_window_begin_paint_region (event->window, event->region); ... pinta pinta pinta ... gdk_window_end_paint (event->window); return TRUE; } Pero para qué re-inventar el hilo negro