psppire_data_window: Don't crash when trying to delete cases when none are selected
[pspp] / src / ui / gui / psppire-data-window.c
index 6cee5a77b366c23e6b06366d2bd6e90a7f6587bc..08c7375a67d9f62d121118e76b61145ce62395cd 100644 (file)
@@ -47,7 +47,7 @@
 #include "gl/c-strcasestr.h"
 #include "gl/xvasprintf.h"
 
-#include "ui/gui/efficient-sheet/src/ssw-sheet.h"
+#include <ssw-sheet.h>
 
 #include "find-dialog.h"
 #include "options-dialog.h"
@@ -1053,10 +1053,9 @@ connect_action_to_menuitem (GActionMap *map, const gchar *action_name, GtkWidget
 
 
 static void
-set_data_page (PsppireDataWindow *dw)
+on_realize (PsppireDataWindow *dw)
 {
   gtk_notebook_set_current_page (GTK_NOTEBOOK (dw->data_editor), 1);
-  gtk_notebook_set_current_page (GTK_NOTEBOOK (dw->data_editor), 0);
 }
 
 
@@ -1145,6 +1144,7 @@ on_clear_cases (PsppireDataWindow *dw)
   if (p == PSPPIRE_DATA_EDITOR_DATA_VIEW)
     {
       SswRange *range = SSW_SHEET(de->data_sheet)->selection;
+      g_return_if_fail (range->start_y >= 0);
       psppire_data_store_delete_cases (de->data_store, range->start_y,
                                       range->end_y - range->start_y + 1);
       gtk_widget_queue_draw (GTK_WIDGET (de->data_sheet));
@@ -1453,7 +1453,7 @@ psppire_data_window_finish_init (PsppireDataWindow *de,
     PSPPIRE_DATA_EDITOR (psppire_data_editor_new (de->dict, de->data_store));
 
   g_signal_connect (de, "realize",
-                    G_CALLBACK (set_data_page), de);
+                    G_CALLBACK (on_realize), de);
 
   g_signal_connect_swapped (de->data_store, "case-changed",
                            G_CALLBACK (set_unsaved), de);