Fix memory leak
[pspp] / src / ui / gui / psppire-data-editor.c
index 27a4b63ab30a0e8c81b88adb29edc2c1ed909b9e..a3431349b186ecb4749c1d18859f7db7fc56ff72 100644 (file)
@@ -345,8 +345,25 @@ refresh_entry (PsppireDataEditor *de)
 }
 
 static void
-on_datum_entry_activate (PsppireValueEntry *entry, PsppireDataEditor *de)
+on_datum_entry_activate (GtkEntry *entry, PsppireDataEditor *de)
 {
+  gint row, col;
+  if (ssw_sheet_get_active_cell (SSW_SHEET (de->data_sheet), &col, &row))
+    {
+      union value val;
+      const struct variable *var = psppire_dict_get_variable (de->dict, col);
+      if (var == NULL)
+       return;
+
+      int width = var_get_width (var);
+      value_init (&val, width);
+      if (psppire_value_entry_get_value (PSPPIRE_VALUE_ENTRY (de->datum_entry),
+                                        &val, width))
+       {
+         psppire_data_store_set_value (de->data_store, row, var, &val);
+       }
+      value_destroy (&val, width);
+    }
 }