Fixed bug closing variable type dialog
[pspp-builds.git] / src / ui / gui / var-type-dialog.c
index d3eb97edf0515195a63418c9730eb1c53353f7ce..d64b81293a5840a196f8eef2a56e19e316630d48 100644 (file)
@@ -207,8 +207,8 @@ on_toggle_2 (GtkToggleButton *togglebutton, gpointer user_data)
 
 
 static gint on_var_type_ok_clicked (GtkWidget *w, gpointer data);
+static gint hide_dialog (GtkWidget *w,  gpointer data);
 
-#define LEN 20
 
 static void
 add_to_group (GtkWidget *w, gpointer data)
@@ -334,6 +334,10 @@ var_type_dialog_create (GladeXML *xml)
 
   dialog->window = get_widget_assert (xml,"var_type_dialog");
 
+
+  g_signal_connect (dialog->window, "delete-event",
+                   G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+
   gtk_window_set_transient_for (GTK_WINDOW (dialog->window),
                               GTK_WINDOW (get_widget_assert (xml, "data_editor")));
 
@@ -542,11 +546,17 @@ var_type_dialog_create (GladeXML *xml)
                   GTK_SIGNAL_FUNC (preview_custom), dialog);
 
 
-  /* Connect the OK button */
+  /* Connect to the OK button */
   g_signal_connect (dialog->ok, "clicked", G_CALLBACK (on_var_type_ok_clicked),
                   dialog);
 
 
+  /* And the cancel button */
+  g_signal_connect (get_widget_assert (xml, "var_type_cancel") , "clicked",
+                   G_CALLBACK (hide_dialog),
+                   dialog);
+
+
   }
 
   return dialog;
@@ -832,10 +842,12 @@ on_var_type_ok_clicked (GtkWidget *w, gpointer data)
 
 
 
-gint
-on_var_type_cancel_clicked (GtkWidget *w,  gpointer data)
+static gint
+hide_dialog (GtkWidget *w,  gpointer data)
 {
-  gtk_widget_hide (w);
+  struct var_type_dialog *dialog = data;
+
+  gtk_widget_hide (dialog->window);
 
   return FALSE;
 }