In the GUI I'm developing I'd like to be able to save window information like 
size and placement when the user exits the application. I have connected the 
top level window to the destroy signal and placed the above mentioned 
functionality into the callback so it looks something like this:


void
destroy                                (gpointer         window)
{
   // Gracefully exit the program
   GET_WINDOW_SIZE(GTK_WIDGET(window), &WIDTH,
                                       &HEIGHT);
   GET_PANE_POSITIONS(&V_PANE_POS, &H_PANE_POS);

   if(TIMEOUT_ID != -1)
   {
      g_source_remove(TIMEOUT_ID);
   }
   SAVE_ARRAY_ENUMS();
   STORE_LOG_TO_FILE();
   SAVE_PROFILE();
   free(GLBL);
   free(dhandle);
   gtk_main_quit();
}

The problem is that when the user clicks the window manager's close button in 
the window decorations, by the time the GET_WINDOW_SIZE() and 
GET_PANE_POSITIONS() execute the window seems to have been removed and HEIGHT, 
WIDTH, V_PANE_POS and H_PANE_POS return values of 0. This seemed to work well 
under GTK 1.2.x but now that I have moved this to GTK 2.6 it stopped behaving 
as expected.

I've seen programs that seem to "ignore" the WM close button, is there a way to 
do that in GTK? Any examples?

Thanks.
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to