проблема в следующем, gtk_file_chooser_set_do_overwrite_confirmation() работает только, если GtkFileChooser получен из GtkFileChooserDialog, если же создавать свой диалог, и встраивать в него GtkFileChooserWidget, использование gtk_file_chooser_set_do_overwrite_confirmation() не дает никакого эффекта
рабочий код
#include <gtk/gtk.h>
                                    
int
main (int argc, char *argv[])
{
  GtkWidget *d;
  gtk_init (&argc, &argv);
  d = gtk_file_chooser_dialog_new ("Save File", NULL,
                                   GTK_FILE_CHOOSER_ACTION_SAVE,
                                   GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                                   GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
  gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (d), TRUE);
  gtk_dialog_run (GTK_DIALOG (d));
  gtk_widget_destroy (d);
}
нерабочий код
#include <gtk/gtk.h>
int
main (int argc, char *argv[])
{
  GtkWidget *d, *w;
  gtk_init (&argc, &argv);
  d = gtk_dialog_new_with_buttons ("Save File", NULL,
				   GTK_DIALOG_MODAL |
				   GTK_DIALOG_DESTROY_WITH_PARENT,
				   GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
				   GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
  w = gtk_file_chooser_widget_new (GTK_FILE_CHOOSER_ACTION_SAVE);
  gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (w), TRUE);
  gtk_widget_show (w);
  gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (d))),
		      w, TRUE, TRUE, 0);
  gtk_dialog_run (GTK_DIALOG (d));
  gtk_widget_destroy (d);
}
во втором случае пробовал добавлять обработчик сигнала confirm-overwrite, но без видимого эффекта, обработчик не вызывался
кто-нибудь знает, как заставить второй вариант вызывать диалог подтверждения перезаписи?

