Рисую окошко на GTK+ через cairo (т. к. там есть поддержка прозрачности). Рисую так:
cairo_t *cr = gdk_cairo_create(widget->window);
if (supports_alpha)
cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); /* transparent */
else
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* opaque white */
/* draw the background */
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
GdkPixbuf *pixbuf;
pixbuf = gdk_pixbuf_new_from_file ("bg.png", NULL);
gdk_cairo_set_source_pixbuf(cr, pixbuf, 0, 0);
cairo_paint(cr);
Возникла проблема: нужно нарисовать поверх этой картинки еще одну (она занимает часть окна). Если делать так же, как первую, то она затирает предыдущую: везде вне рисунка окно становится прозрачным. Вопрос: как нарисовать несколько картинок поверх друг друга?