Warnings: added cast for enumaration types
[pspp] / src / ui / gui / psppire-variable-sheet.c
index 41c428fffc2c2708f9e98331f182d72872863e5f..05c3aaf5dab6ef0a76040b1a3fd25f588315f1a0 100644 (file)
@@ -248,6 +248,13 @@ delete_variables (SswSheet *sheet)
   PsppireDict *dict = NULL;
   g_object_get (sheet, "data-model", &dict, NULL);
 
+  if (range->start_x > range->end_x)
+    {
+      gint temp = range->start_x;
+      range->start_x = range->end_x;
+      range->end_x = temp;
+    }
+
   psppire_dict_delete_variables (dict, range->start_y,
                                 (range->end_y - range->start_y + 1));
 
@@ -259,6 +266,10 @@ create_var_row_header_popup_menu (PsppireVariableSheet *var_sheet)
 {
   GtkWidget *menu = gtk_menu_new ();
 
+  /* gtk_menu_shell_append does not sink/ref this object,
+     so we must do it ourselves (and remember to unref it).  */
+  g_object_ref_sink (menu);
+
   GtkWidget *item =
     gtk_menu_item_new_with_mnemonic  (_("_Insert Variable"));
   g_signal_connect_swapped (item, "activate", G_CALLBACK (insert_new_variable_var),
@@ -425,6 +436,7 @@ psppire_variable_sheet_dispose (GObject *obj)
   g_object_unref (sheet->value_label_renderer);
   g_object_unref (sheet->missing_values_renderer);
   g_object_unref (sheet->var_type_renderer);
+  g_object_unref (sheet->row_popup);
 
   /* Chain up to the parent class */
   G_OBJECT_CLASS (parent_class)->dispose (obj);
@@ -586,7 +598,6 @@ psppire_variable_sheet_init (PsppireVariableSheet *sheet)
 
   sheet->row_popup = create_var_row_header_popup_menu (sheet);
 
-
   g_signal_connect (sheet, "selection-changed",
                    G_CALLBACK (set_var_popup_sensitivity), sheet);