psppire-output-window: Insert a half-line of space between output items.
[pspp-builds.git] / src / ui / gui / psppire-output-window.c
index 9886810f1134f109d7cc5496ad36f5876e587090..658d36a4669f7d9aecb236a25214678ead7f4444 100644 (file)
@@ -109,7 +109,8 @@ psppire_output_window_dispose (GObject *obj)
   viewer->items = NULL;
   viewer->n_items = viewer->allocated_items = 0;
 
-  g_object_unref (viewer->print_settings);
+  if (viewer->print_settings != NULL)
+    g_object_unref (viewer->print_settings);
 
   /* Chain up to the parent class */
   G_OBJECT_CLASS (parent_class)->dispose (obj);
@@ -148,6 +149,7 @@ struct psppire_output_driver
     struct output_driver driver;
     PsppireOutputWindow *viewer;
     struct xr_driver *xr;
+    int font_height;
   };
 
 static struct output_driver_class psppire_output_class;
@@ -221,8 +223,10 @@ psppire_output_submit (struct output_driver *this,
     {
       const GtkStyle *style = gtk_widget_get_style (GTK_WIDGET (viewer));
       struct string_map options = STRING_MAP_INITIALIZER (options);
+      struct text_item *text_item;
       PangoFontDescription *font_desc;
       char *font_name;
+      int font_width;
 
       /* Use GTK+ default font as proportional font. */
       font_name = pango_font_description_to_string (style->font_desc);
@@ -251,7 +255,15 @@ psppire_output_submit (struct output_driver *this,
       pod->xr = xr_driver_create (cr, &options);
 
       string_map_destroy (&options);
+
+      text_item = text_item_create (TEXT_ITEM_PARAGRAPH, "X");
+      r = xr_rendering_create (pod->xr, text_item_super (text_item), cr);
+      xr_rendering_measure (r, &font_width, &pod->font_height);
+      /* xr_rendering_destroy (r); */
+      text_item_unref (text_item);
     }
+  else
+    pod->viewer->y += pod->font_height / 2;
 
   r = xr_rendering_create (pod->xr, item, cr);
   if (r == NULL)