Здравствуйте! Ниже приведён фрагмент кода, выводящего окошко gtk_message_dialog:
#include <gtk/gtk.h>
int main(int argc, char** argv)
{
gtk_init(&argc, &argv);
GtkWidget* dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Error loading file", NULL);
g_signal_connect(dialog, "response", G_CALLBACK(gtk_main_quit), NULL);
gtk_widget_show_all(GTK_WIDGET(dialog));
gtk_main();
gtk_widget_destroy(dialog);
return 0;
}
Вышедшее окно корректно закрывается по нажатию на кнопку CLOSE, но при нажатии на крестик в верхнем углу выдаёт ошибку:
Gtk-CRITICAL **: gtk_widget_destroy: assertion `GTK_IS_WIDGET (widget)' failed
g_signal_connect(dialog, "destroy", G_CALLBACK(gtk_main_quit), NULL);
Как сделать корректное закрытие по крестику?