Remove font information from cell attributes and sheet model.
[pspp-builds.git] / src / ui / gui / psppire-data-editor.c
index d0a6b8088b67c6d17f0cce4fd479e0379889c6bd..02130f699f994b64926bcbf8aa7164be37471d31 100644 (file)
@@ -1175,14 +1175,26 @@ psppire_data_editor_sort_descending (PsppireDataEditor *de)
 void
 psppire_data_editor_insert_variable (PsppireDataEditor *de)
 {
-  glong posn = -1;
-
-  if ( de->data_sheet[0]->state == GTK_SHEET_COLUMN_SELECTED )
-    posn = GTK_SHEET (de->data_sheet[0])->range.col0;
-  else
-    posn = GTK_SHEET (de->data_sheet[0])->active_cell.col;
+  glong posn = 0;
 
-  if ( posn == -1 ) posn = 0;
+  switch (gtk_notebook_get_current_page (GTK_NOTEBOOK (de)))
+    {
+    case PSPPIRE_DATA_EDITOR_DATA_VIEW:
+      if ( de->data_sheet[0]->state == GTK_SHEET_COLUMN_SELECTED )
+       posn = GTK_SHEET (de->data_sheet[0])->range.col0;
+      else
+       posn = GTK_SHEET (de->data_sheet[0])->active_cell.col;
+      break;
+    case PSPPIRE_DATA_EDITOR_VARIABLE_VIEW:
+      if ( de->var_sheet->state == GTK_SHEET_ROW_SELECTED )
+       posn = GTK_SHEET (de->var_sheet)->range.row0;
+      else
+       posn = GTK_SHEET (de->var_sheet)->active_cell.row;
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+    };
 
   psppire_dict_insert_variable (de->data_store->dict, posn, NULL);
 }
@@ -1251,11 +1263,27 @@ psppire_data_editor_show_grid (PsppireDataEditor *de, gboolean grid_visible)
   gtk_sheet_show_grid (GTK_SHEET (de->data_sheet[0]), grid_visible);
 }
 
+
+static void
+set_font (GtkWidget *w, gpointer data)
+{
+  PangoFontDescription *font_desc = data;
+  GtkRcStyle *style = gtk_widget_get_modifier_style (w);
+
+  pango_font_description_free (style->font_desc);
+  style->font_desc = pango_font_description_copy (font_desc);
+
+  gtk_widget_modify_style (w, style);
+
+  if ( GTK_IS_CONTAINER (w))
+    gtk_container_foreach (w, set_font, font_desc);
+}
+
 void
 psppire_data_editor_set_font (PsppireDataEditor *de, PangoFontDescription *font_desc)
 {
-  psppire_data_store_set_font (de->data_store, font_desc);
-  psppire_var_store_set_font (de->var_store, font_desc);
+  set_font (de, font_desc);
+  gtk_container_foreach (GTK_CONTAINER (de), set_font, font_desc);
 }