#include #include /* Gtk+ cvs of 2003-07-18 crashes if gtk_window_present() is called on * an already shown window. It seems that CVS 2003-07-01 does not have the pb */ static void clicked_to_hide(GtkButton *button, gpointer data) { GtkWidget *window = (GtkWidget *) data; gtk_widget_hide(window); } static void clicked_to_show(GtkButton *button, gpointer data) { GtkWidget *window = (GtkWidget *) data; gtk_window_present(GTK_WINDOW(window)); } int main(int argc, char **argv) { GtkWidget *window; GtkWidget *button; GtkWidget *button2; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); button = gtk_button_new_with_label("Present second window"); gtk_container_add(GTK_CONTAINER(window), button); gtk_widget_show_all(window); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); button2 = gtk_button_new_with_label("Hide this window"); gtk_container_add(GTK_CONTAINER(window), button2); gtk_widget_show_all(window); g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(clicked_to_show), window); g_signal_connect(G_OBJECT(button2), "clicked", G_CALLBACK(clicked_to_hide), window); gtk_main(); }