psppire-output-window: Avoid calling gdk_window_begin_draw_frame twice.
[pspp] / src / ui / gui / psppire-output-view.c
index b90c7d76373efa4eeb3b7832f468074928464987..b7d2c2074c48beffa135b057412e8d331772861e 100644 (file)
@@ -224,13 +224,14 @@ rerender (struct psppire_output_view *view)
   if (!view->n_items || ! gdkw)
     return;
 
+  if (view->xr == NULL)
+    create_xr (view);
+
   GdkWindow *win = gtk_layout_get_bin_window (view->output);
   cairo_region_t *region = gdk_window_get_visible_region (win);
   GdkDrawingContext *ctx =  gdk_window_begin_draw_frame (win, region);
   cairo_t *cr = gdk_drawing_context_get_cairo_context (ctx);
 
-  if (view->xr == NULL)
-    create_xr (view);
   view->y = 0;
   view->max_width = 0;
   for (item = view->items; item < &view->items[view->n_items]; item++)
@@ -343,13 +344,13 @@ psppire_output_view_put (struct psppire_output_view *view,
     {
       view_item->drawing_area = drawing_area = gtk_drawing_area_new ();
 
+      if (view->xr == NULL)
+        create_xr (view);
+
       cairo_region_t *region = gdk_window_get_visible_region (win);
       GdkDrawingContext *ctx = gdk_window_begin_draw_frame (win, region);
       cairo_t *cr = gdk_drawing_context_get_cairo_context (ctx);
 
-      if (view->xr == NULL)
-        create_xr (view);
-
       if (view->y > 0)
         view->y += view->font_height / 2;