Итак. 
после открытия основного окна 
  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() не срабатывает