- gdk_draw_rgb_32_image (drawing_area->window,
- drawing_area->style->black_gc,
- event->area.x, event->area.y,
- event->area.width,
- event->area.height,
- GDK_RGB_DITHER_MAX,
- gdk_pixbuf_get_pixels (pixbuf)
- + (event->area.y * gdk_pixbuf_get_rowstride (pixbuf))
- + (event->area.x * gdk_pixbuf_get_n_channels (pixbuf)),
- gdk_pixbuf_get_rowstride (pixbuf));
+ GdkPixbuf *dest;
+
+ gdk_window_set_back_pixmap (drawing_area->window, NULL, FALSE);
+
+ dest = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, event->area.width, event->area.height);
+
+ gdk_pixbuf_composite_color (pixbuf, dest,
+ 0, 0, event->area.width, event->area.height,
+ -event->area.x, -event->area.y,
+ (double) drawing_area->allocation.width / gdk_pixbuf_get_width (pixbuf),
+ (double) drawing_area->allocation.height / gdk_pixbuf_get_height (pixbuf),
+ GDK_INTERP_BILINEAR, 255,
+ event->area.x, event->area.y, 16, 0xaaaaaa, 0x555555);
+
+ gdk_draw_pixbuf (drawing_area->window, drawing_area->style->fg_gc[GTK_STATE_NORMAL], dest,
+ 0, 0, event->area.x, event->area.y,
+ event->area.width, event->area.height,
+ GDK_RGB_DITHER_NORMAL, event->area.x, event->area.y);
+
+ g_object_unref (dest);