gui: Unselect data in data editor when the datasheet is replaced.
authorBen Pfaff <blp@cs.stanford.edu>
Wed, 4 May 2011 04:30:01 +0000 (21:30 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Thu, 5 May 2011 01:51:52 +0000 (18:51 -0700)
The active cell in the PsppireSheet remembers its contents even if
the whole sheet gets replaced, so we have to unselect the cell when
this happens to avoid replacing the cell's contents by whatever was
there before.

Bug #30502.
Thanks to Michel Boaventura for reporting the problem and John
Darrington for diagnosing it.

src/ui/gui/psppire-data-editor.c

index c5a3cd3671cf183fdf3718d4ec8856747c477839..30098a7e50d905f439d3d68e9847fe72379862bf 100644 (file)
@@ -225,6 +225,13 @@ new_data_callback (PsppireDataStore *ds, gpointer data)
       psppire_axis_clear (de->vaxis[i]);
       psppire_axis_append_n (de->vaxis[i], n_cases, DEFAULT_ROW_HEIGHT);
     }
+
+  /* All of the data (potentially) changed, so unselect any selected cell(s) in
+     the data sheets.  If we don't do this, then the sheet remembers the value
+     that was in the selected cell and stores it back, wiping out whatever
+     value there is in the new data.  Bug #30502. */
+  for (i = 0; i < 4; i++)
+    psppire_sheet_unselect_range (PSPPIRE_SHEET (de->data_sheet[i]));
 }
 
 static void