psppire-output-view: Render only the visible parts of tables.
[pspp] / src / ui / gui / psppire-output-view.c
index 6f69819cd8a7e1660b414fa21964a9f1c74d38d7..fc660896d155a98437143ca5d74f961e6097fac7 100644 (file)
@@ -104,8 +104,13 @@ layout_draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data)
 static gboolean
 draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data)
 {
+  GdkRectangle clip;
+  if (!gdk_cairo_get_clip_rectangle (cr, &clip))
+    return TRUE;
+
   struct xr_rendering *r = g_object_get_data (G_OBJECT (widget), "rendering");
-  xr_rendering_draw_all (r, cr);
+  xr_rendering_draw (r, cr, clip.x, clip.y,
+                     clip.x + clip.width, clip.y + clip.height);
   return TRUE;
 }