Index: gdk/gdkcairo.c
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/gdkcairo.c,v
retrieving revision 1.5
diff -u -p -r1.5 gdkcairo.c
--- gdk/gdkcairo.c	23 Jun 2005 13:49:06 -0000	1.5
+++ gdk/gdkcairo.c	13 Oct 2005 20:59:01 -0000
@@ -224,5 +224,32 @@ gdk_cairo_set_source_pixbuf (cairo_t   *
   cairo_surface_destroy (surface);
 }
 
+/**
+ * gdk_cairo_set_source_pixmap:
+ * @cr: a #Cairo context
+ * @pixmap: a #GdkPixmap
+ * @pixmap_x: X coordinate of location to place upper left corner of @pixmap
+ * @pixmap_y: Y coordinate of location to place upper left corner of @pixmap
+ * 
+ * Sets the given pixmap as the source pattern for the Cairo context.
+ * The pattern has an extend mode of %CAIRO_EXTEND_NONE and is aligned
+ * so that the origin of @pixbuf is @pixbuf_x, @pixbuf_y
+ *
+ * Since: 2.10
+ **/
+void
+gdk_cairo_set_source_pixmap (cairo_t   *cr,
+			     GdkPixmap *pixmap,
+			     double     pixmap_x,
+			     double     pixmap_y)
+{
+  cairo_surface_t *surface;
+  
+  surface = _gdk_drawable_ref_cairo_surface (GDK_DRAWABLE (pixmap));
+  cairo_set_source_surface (cr, surface, pixmap_x, pixmap_y);
+  cairo_surface_destroy (surface);
+}
+
+
 #define __GDK_CAIRO_C__
 #include "gdkaliasdef.c"
Index: gdk/gdkcairo.h
===================================================================
RCS file: /cvs/gnome/gtk+/gdk/gdkcairo.h,v
retrieving revision 1.1
diff -u -p -r1.1 gdkcairo.h
--- gdk/gdkcairo.h	11 May 2005 19:16:18 -0000	1.1
+++ gdk/gdkcairo.h	13 Oct 2005 20:59:01 -0000
@@ -34,6 +34,10 @@ void gdk_cairo_set_source_pixbuf (cairo_
 				  GdkPixbuf    *pixbuf,
 				  double        pixbuf_x,
 				  double        pixbuf_y);
+void gdk_cairo_set_source_pixmap (cairo_t   *cr,
+				  GdkPixmap *pixmap,
+				  double     pixmap_x,
+				  double     pixmap_y);
 
 void gdk_cairo_rectangle (cairo_t      *cr,
 			  GdkRectangle *rectangle);
