Итак.
после открытия основного окна
windowMain_create ();
gtk_widget_show (windowMain);
g_signal_connect ((gpointer) windowMain, "destroy", G_CALLBACK(gtk_main_quit),
NULL);
вызывается диалог логина с кнопками "Вход" и "Выход"
void
on_windowMain_show (GtkWidget *widget,
gpointer user_data)
{
on_toExit_activate(NULL, NULL);
}
по нажатию "Вход" осуществляется проверка логин/пароля и вход в порграмму
иначе закрвается не только диалог, но и основное окно
void
on_toExit_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
dialogLogin_create();
gint result = dialogLogin_run();
dialogLogin_destroy();
if (result!=GTK_RESPONSE_OK)
windowMain_destroy();
}
Однако хотя окно и закрывается порцесс остается в памяти...
void windowMain_destroy (void)
{
// gtk_signal_emit_by_name (GTK_OBJECT(windowMain),"destroy");
gtk_widget_destroy(windowMain);
windowMain=NULL;
}
здесь закоментирована попытка послать окну сообщение - не прокатила
ПОЧЕМУ? как с этим бороться?
------------------------------
исходники прилагаются(на исходниках ) при нажатии "Х" на главном окне - закрывается как надо
Добавлено Вчера, 08:02
void windowMain_destroy (void)
{
// gtk_signal_emit_by_name (GTK_OBJECT(windowMain),"destroy");
gtk_main_quit();
gtk_widget_destroy(windowMain);
gtk_main_quit();
windowMain=NULL;
gtk_main_quit();
}
даже 3 gtk_main_quit не помогли!!!
g_signal_connect ((gpointer) windowMain, "destroy", G_CALLBACK(gtk_main_quit),NULL);
необходимое условие "чистого" выхода из программы
достаточным является нажатие "X" на окне
КАК ИМИТИРОВАТЬ ЕГО НАЖАТИЕ?
Добавлено Вчера, 12:40
проблемма действительно в том что ,
что войдя в цикл он не может выйти gtk_main_quit() не срабатывает